設定ファイル ~/.vimrc

これまでの連載でVimを使うにあたって知っておくと便利な機能についてはひととおり説明してきたつもりだ。あとはVimのカスタマイズをする方法を説明して、Vimの紹介は一旦締めようと思う。

これまでの連載の内容をそのまま試しているなら、ホームディレクトリ以下に.vimrcというファイルが作成してあって、次のような内容が書いてあるはずだ。

colorscheme slate
set number

この状態でVimでXMLファイルを編集しようとすると、次のような状態になる。

上記~/.vimrcでのVimの使用例

~/.vimrcの中身を空にして同じファイルをVimで開くと次のようになる。

からの~/.vimrcでのVimの使用例

見た目が変わっていることがおわかりいただけるはずだ。デフォルトの挙動がどうなっているかはLinuxディストリビューションごとに異なるのだが、~/.vimrcに設定を追加しておくと、このデフォルトの挙動を変えることができる、ということを覚えておいていただきたい。

~/.vimrcファイルで設定できる内容は千差万別だ。それこそ沼であり、全てを説明することは不可能な気すらする。本稿では”取っ掛かり”として、特によく使われていると思われる設定をかいつまんで紹介しておくので、後は自分の好みで~/.vimrcを育てていってほしい。

カラースキーマを設定 colorscheme

カラースキーマを設定する方法については第214回ですでに紹介しているので、どんなカラースキーマを設定できるかはそちらを参考にしてほしい。次の記述では、「slate」というカラースキーマを設定している。

colorscheme slate

カラースキーマを設定しても色が付かない場合、次のようにシンタックス機能を有効化する設定を追加してみてほしい。これで解決するはずだ。

syntax on

カラースキーマは視認性を向上させる上で役に立つ。自分の好みのカラースキーマを選んで設定してみよう。

行数を表示する「set number」

Vimでは以下のコマンドで行数を表示させることができる。

set number

置換機能について説明するときに紹介したように、Vimでは置換を適用する範囲を行数などで指定することができる。このため、常に行数が表示されていると何かと扱いやすい。この設定もデフォルトで有効化しておいたほうが便利だろう。

ただし、ターミナルからテキストをコピー&ペーストしたい場合には、逆にこの行数表示が邪魔になることがある。そんなときにはノーマルモードで「:set nonumber」のように実行すれば行表示を解除することができる。

行末と行頭の回り込みを行う「set whichwrap=」

Vimはデフォルトではカーソルが行末からさらに右には移動しないようになっている。GUIエディタやワープロアプリケーションでは、行末にきたカーソルは回って次の行の行頭へ移動することが多い。逆に行頭からさらに左に移動しようとすれば、前の行の行末へ移動する。

Vimではこの設定を「set whichwrap=」の実行によって行うことができる。次のように設定しておけばまずまずGUIエディタと同じような動作になると思う。

set whichwrap=b,s,[,],<,>,~,h,l

「set whichwrap=」で指定している内容についても、次に説明をまとめておく。

文字 対応キー 対応モード
b Backspace ノーマル、ビジュアル
s Space ノーマル、ビジュアル
< ノーマル、ビジュアル
> ノーマル、ビジュアル
[ 挿入、置換
] 挿入、置換
~ ~ ノーマル
h h ノーマル、ビジュアル
l l ノーマル、ビジュアル

この設定はデフォルトでは有効になっていないことが多い。気になるならこの設定を追加しておこう。

カーソルを強調表示する set cursorline

Vimを使っていると今どの行にカーソルがあるのかわかりにくい時がある。そんなときが多いなら次の設定を追加し、カーソル行を強調しておこう。

set cursorline

状況によって異なるのだが、この設定を追加しておくとカーソルのある行が多少目立ってわかりやすくなる。

検索をカスタマイズする「incsearch」「hlsearch」「ignorecase」

検索機能の挙動については好みが出る部分なので参考までに挙動を変更する設定を紹介しておく。まず、検索キーワードを入力している間にインタラクティブに検索対象に移動させたいなら、次のような設定を追加する。

set incsearch

入力しながら検索対象を探っていくような使い方をしたい場合には上記設定が便利だ。

検索に一致した単語を強調表示させる場合には次の設定を有効にする。1ページのなかに検索対象がいくつもあるようなケースでは、この設定を有効化しておくと検索対象がハイライト表示されて便利だ。

set hlsearch

大文字と小文字を区別しないで検索したい場合は、次の設定を入れておく。

set ignorecase

大文字を小文字を区別する検索だと取りこぼすこともあるので、そういったケースが心配な場合にはこの設定をしておくとよい。

設定ファイルの例

今回紹介した設定をすべて書き込むとすれば、~/.vimrcの内容は次のようになる。

colorscheme slate
set number
syntax on
set whichwrap=b,s,[,],<,>,~,h,l
set cursorline
set incsearch
set hlsearch
set ignorecase

この状態でVimを起動すると次のようになる。

上記~/.vimrcでVimを起動した場合のサンプル

~/.vimrcの内容は自分の都合に合わせて変えていくものだ。デフォルトで満足しているなら特に~/.vimrcを作って何かを書き込む必要はないし、不満点があるなら~/.vimrcに挙動を変更する設定を追加すればよい。育て上げた~/.vimrcはなかなか手になじむものだ。Vimを使っていた不満なところが出てきたら、~/.vimrcファイルの編集にトライしてみよう。