localvimrc: ディレクトリごとに別の .vimrc を適用する

色々なソフトウェアプロジェクトを掛け持ちしていたり、一つのプロジェクトが複数のプロジェクトの寄せ集めだったりすると、プロジェクトごとにコーディングルールなどが異なっていて、エディタの設定を使いわけたくなることがあります。そんな時に便利なのが localvimrc という vimプラグインです。

インストール方法

まず、vim.org の localvimrc のページに行き、最新バージョンの localvimrc.vba をダウンロードします。
あとは、そのファイルを vim で開いて、以下の vim コマンドを打つだけです。

:so %

これで、 ~/.vim/plugin/localvimrc.vim がインストールされます。
ダウンロードしたファイルは削除してしまってかまいません。

使いかた

特別な設定を加えたいソースコードツリーのトップディレクトリに .lvimrc という名前のファイルを作成すると、それ以下のファイルを開く際は、通常の ~/.vimrc に加えてその .lvimrc も読み込まれるようになります。

ただし、セキュリティ的な観点から、読み込み時に毎回「読み込んで良いか?」と聞いてきて鬱陶しいので、以下のいずれかの設定を ~/.vimrc に追加しておいた方が良いでしょう。

let g:localvimrc_ask=0        " いちいち聞かずに勝手に読み込む
let g:localvimrc_persistent=2 " 一度聞いたファイルを記録しておき、次回からは自動で読み込む
let g:localvimrc_persistent=1 " 聞いたときに大文字のY/N/Aで答えた場合のみ上記の動作をする

私は一番最後の設定で使っています。なお、選択の記録はファイル ~/.localvimrc_persistent (設定で変更可)に保存されます。

また他にも .lvimrc は(これもセキュリティ的に) sandbox で実行されるのですが、それを避ける設定や、複数の .lvimrc が見つかった場合にどう処理するか(ぜんぶ実行、一番深いところのもののみ実行など)、といったいろいろな設定が可能です。詳しくは下記の公式のドキュメントを参照してください。

https://github.com/embear/vim-localvimrc/blob/master/doc/localvimrc.txt