Friday, September 28, 2007

vim の自動インデントで余分にインデントされてしまう件

vim でタブに対応する空白数はデフォルトで8のようだが、ホームディレクトリ直下の .vim ファイルに

set tabstop=4

と定義しておくことで、対応する空白数を4にセットできる。だが、こうすると C や Java のソースファイルを編集するときの自動インデントが余分に入るようになってしまった。つまり、1回インデントして空白が4つ入るはずなのに、2回インデントして8つの空白が入るようになってしまう。

この原因は、タブの空白数の設定と自動インデントによる空白数の設定とは別であるところにある。デフォルトでは自動インデントにおける空白数が8に設定されているようで、このためタブの空白数が4だと、8つの空白を入れるためにインデントが2回実行されてしまうというわけだ。


参考サイト: vim の全オプション


これを直すには、自動インデントの空白数をタブの空白数に合わせてやればいい。次のように設定する。

set shiftwidth=4

.vimrc に先の tabstop の設定と同様に定義しておけば、問題は解決する。

No comments: