NeoBundle.vimからDein.vim移行に伴い、Vimの設定ファイル群の整理も行ったのでその記録。
設定ファイル群の構成
ざっくり以下の構成に整えました。
dotfiles/ └── .vim/ ├── colors/ // カラースキーム置き場(今回は説明しません) ├── ftplugin/ // filetypeごとの固有設定ファイル置き場 ├── gvimrc ├── rc/ │ └── *.vim // 各種設定ファイル ├── template/ // template置き場 └── vimrc // メインのvimrc
vimrc, gvimrc の設置箇所について
:help vimrc
によると、
個人の初期化ファイルの配置場所:
Unix $HOME/.vimrc、$HOME/.vim/vimrc初期化ファイルは上記の順に検索され、最初に見つかったものだけが読み込まれる。
推奨: Vimの設定ファイルは全て $HOME/.vim/ ディレクトリ(MS-Windowsでは$HOME/vimfiles/)に置くこと。そうすれば設定ファイルを別のシステムにコピーするのが容易になる。
とあります。
今まで$HOME直下にVim設定ファイルとして、 .vimrc, .vim/, .gvimrc の3つをシンボリックリンクでつなげてましたが、$HOME直下は.vim/だけで済むようにしました。
ftplugin ディレクトリについて
ファイルタイプごとに固有の設定は
.vim/ftplugin/<filetype>.vim .vim/ftplugin/<filetype>_<name>.vim .vim/ftplugin/<filetype>/<name>.vim
の箇所に配置すると、各ファイルタイプに応じて読み込まれます。
pythonを例にすると、python.vim でも python_hoge.vim でも python/hoge.vim でも読み込まれます。
.vimrc にすべてのファイルタイプの設定を書くのでなく、
各ファイルタイプごとに設定ファイルを用意することでリーダブルにします。
rc ディレクトリについて
私のVim環境下では、 .vim/rc/以下の *.vim ファイルをすべて読み込むように設定しています。
こうすることで、例えば Dein用の設定ファイルは.vim/rc/dein.vimのように、pluginごとの設定は.vim/rc/<plugin_name>.vim に分割することが可能です。
設定方法は、大本のvimrcに以下のように記述するだけです。
set rtp+=$HOME/.vim/ runtime! rc/*.vim
Dein.vim 用の call dein#add(...)
を記述しまくった設定ファイルもここに設置しています。
template ディレクトリについて
テンプレートファイル置き場です。
Vimでのテンプレートは以下の設定で実現可能です。
例: Pythonのテンプレートファイルを設置する場合
.vim/template/skeleton.py として、以下を記述したファイルを設置します。
# coding: utf-8
次に、 .vim/rc/skeleton.vim に以下を記述したファイルを設置します。
(.vim/ftplugin/python.vim 内に記述しても可能です。)
augroup template autocmd! autocmd BufNewFile *.py 0r $HOME/.vim/template/skeleton.py augroup END
$ vim new.py
とすると、自動で "# coding: utf-8" が挿入されます。
:help skeleton
もご参照ください。
まとめ
上記のような構成にすることで、Vimの設定ファイルをすべて .vim/ 配下で完結しつつ、ファイルタイプや用途ごとに適切に分割することができました。
以前より見通しがよくなった為、管理もしやすいです。
もし今まで.vimrcひとつで管理してた人は、分割も試してみてはいかがでしょうか?
それでは良いVimライフを!!