連載
» 2011年07月21日 00時00分 UPDATE

いまさら聞けないVim(6):設定ファイルを作って自分の好みに改造 (1/3)

今回はいよいよVimの設定ファイルの解説に入ります。基本的な設定項目とよく使う設定項目について説明した後に、いくつかサンプルをお見せします(編集部)

[後藤大地,@IT]

設定ファイル次第で自由に動作を制御できる

 これまで、Vimの標準的な操作法を解説してきた。前回までに説明した操作法をマスターすれば、不自由なくVimでテキスト編集ができるだろう。しかし、Vimが真価を発揮するのは、ユーザーが自分の好みに合わせて動作をカスタマイズしたときだ。

 Vimは本当にさまざまな部分の動き方を自由に設定できる。自分がいつも編集しているファイルや、よく利用する操作を便利にするために、驚くほど自由に設定を変更できるのだ。

 設定を変更するには、設定ファイルを用意する。Mac OS X、Linux、FreeBSDなどのUNIX系のOSに向けたVimと、Windows向けのVimとでは、設定ファイルの名前が異なるので注意が必要。UNIX系OSの場合はホームディレクトリに「.vimrc」という名前で作る。一方、Windowsではホームフォルダに「_vimrc」という名前で用意する。

 Vimはプラグインを追加することで機能を拡張することも可能だ。このプラグインを格納するディレクトリ(フォルダ)の名前もUNIX系OSとWindowsとでは異なる。UNIX系OSではホームディレクトリの下に「.vim」というディレクトリを用意し、Windowsではホームフォルダに「_vimfiles」というフォルダを用意する。

 今回は、設定ファイルを初めて作るときに知っておきたい基本を解説する。Vimの大きな特徴の1つは柔軟に設定を変更できることである。設定ファイルの書式が理解できたら、自分だけの設定ファイルを作るべく、いろいろな部分に触れてみてほしい。

 なおWindowsやLinuxディストリビューションでVimを使っているときは、初めからある程度設定変更してある状態で使っている可能性がある。Windowsであればホームフォルダに_vimrcという空のファイルを作ると、元の状態のVimが起動するようになるので、その違いを確認できる。

頼りになる:helpキーワード

 設定ファイルを作成するとなると、ある部分の設定を変更すると、どういう結果になるのかを調べていく必要がある。最も簡単に調べる方法はVimのヘルプを読むことだ。例えば「wildmode」という設定項目が何をするものなのか、値としてどんなものが指定できるのかは、ノーマルモードで「:help wildmode」と入力して調べることができる。

 以降に紹介する設定も基本的にヘルプに書いてある内容に従ってまとめたものだ。より詳しい説明を読みたいときや、本稿で紹介しきれていない機能について調べたいときはヘルプを参照するようにしてほしい。

基本的なキー操作の設定

 まずは、よく使う基本的な設定項目を紹介する。初期設定では、Vimは挿入モードに入ったときに[Backspace]キーで文字を削除できない。直前に入力した文字は削除できるが、挿入モードに入る前に存在していた文字は削除できない。頭で[Backspace]を押しても行がつながることはなく、オートインデントモードではインデントを[Backspace]で削除できない。

 一般的なエディタを使ってきた人にとって、この設定はかなり困惑する部分だ。次のように「backspace」を設定することで、通常のエディタのように扱えるようになる。

set backspace=start,eol,indent

 “set backspace”に続く3つの単語の意味を解説しよう。startは、ノーマルモードに移った後に、再び挿入モードに入っても、[Backspace]キーで自由に文字を削除できるようにすることを意味する。

 eolは、行頭で[Backspace]を押したときに行の連結を可能にする設定だ。そして、indentは、オートインデントモードのインデントも削除可能にするということだ。

 ただし、こうして設定することには良い面と悪い面があることを覚えておきたい。Vimの操作方法に慣れてきたら、むしろstart,eol,indentと設定すると自由度が高くなりすぎて、誤って[Backspace]を押したときに編集中のテキストを大きく崩してしまうことがある。そのため、扱いにくいと感じることがあるかもしれない。Vimの標準的な操作方法に慣れてきたらbackspace=として変に設定を変更しない方がよいかもしれない。しかし、backspace=eolくらいなら扱いやすいと感じることも多い。

 Vimでは行の先頭や末尾から、カーソルの移動に使えるのは[Backspace]と[Space]のみだ。これをカーソルキーでも移動可能にしたいなら次のようにwhichwrapを設定する。

set whichwrap=b,s,[,],,~

 ここに設定した各項目の意味は下のの通りだ。

設定項目 対象のキー 対象となるモード
b [Backspace] ノーマルモードおよびビジュアルモード
s [Space] ノーマルモードおよびビジュアルモード
< [←] ノーマルモードおよびビジュアルモード
> [→] ノーマルモードおよびビジュアルモード
[ [←] 挿入モードおよび置換モード
] [→] 挿入モードおよび置換モード
~ ~ ノーマルモード

 通常のエディタから移行してきた人は、whichwrapの設定がないとかなりイライラするかもしれない。しかし、これも慣れの問題だ。Vimに慣れてくると、カーソルキーで回り込まれると面倒だと感じるようになる。変にカーソルが移動することを好まないということだ。慣れてきたらwhichwrap=b,sとして初期設定に戻してもよいだろう。

マウス操作の設定

 マウスとの連携機能は何かと便利なので利用するといい。ただしWindowsではあまり効果が感じられない。Windowsでマウスの有効利用やGUI表示を期待するなら、VimではなくgVimを使った方が便利だ。

 マウスとの連携機能は、Mac OS XやLinux、FreeBSDなどを使っているときに大きな効果が見込める。ただし、ターミナルごとに利用できる機能が異なるので、より高機能なターミナルエミュレータを使う方がいい。設定は次のようにすればいいだろう。これで、すべてのモードでマウスが有効になる。

set mouse=a

 マウスを有効にする設定には、ほかにも下表のようなものがある。

設定項目 対象となるモード
n ノーマルモードを対象とする
v ビジュアルモードを対象とする
i 挿入モードを対象とする
c コマンドラインモードを対象とする
h ヘルプファイルを編集中にすべてのモードを対象とする
a すべてのモードを対象とする
r |hit-enter|および|more-prompt|プロンプトを対象とする

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。