はじめに
昨日Vimを暗黒パワーに染めるべくdein.vimを導入してみたメモに書いた通り、プラグインマネージャーをpathogenからdein.vimに乗り換えた。
pathogenの場合は~/.vim/bundle
内にgit
に管理させない状態で端末固有のプラグインを放り込んでおけばそれぞれ読み込んでくれたが、dein.vimの場合はdein#add()
やdein#local()
、dein#load_toml()
で明示的に読み込む必要がある。
私のやり方では~/.vimrc
は全端末共有の設定を書き、~/.vimrc.local
に各端末固有の設定を書くようにしているのだが、dein.vimはプラグインのロードを一箇所のdein#begin()
ブロック内に書かなければならないため、端末固有のプラグインのロードも~/.vimrc
に書く必要があった。
そこで、TOMLファイルを全端末共通のものと各端末固有のものの2種類準備し、全端末共通のものだけgit管理下に置いて共有するようにした。
設定
" use dein.vimif&compatiblesetnocompatibleendif
augroup MyAutoCmd
autocmd!
augroup END
lets:dein_dir = $HOME . '/.vim/dein'lets:dein_repo_dir =s:dein_dir . '/repos/github.com/Shougo/dein.vim'let&rtp=&rtp .",". s:dein_repo_dir
if!exists('g:dein_toml_list')letg:dein_toml_list = []
endifletg:dein_toml_list += [s:dein_dir . '/config.toml',s:dein_dir . '/config_local.toml']
lets:dein_rc_list = [$MYVIMRC] +g:dein_toml_list
if dein#load_state(s:dein_dir)call dein#begin(s:dein_dir,s:dein_rc_list)for toml ing:dein_toml_list
if filereadable(toml)call dein#load_toml(toml)endifendforcall dein#end()call dein#save_state()if dein#check_install()call dein#install()endifendifsilent! execute 'helptags's:dein_repo_dir . '/doc/'
g:dein_toml_list
というリストを準備し、そこに読み込ませるTOMLファイルをひたすら追加していく。
その後それぞれファイルが存在し読み込むことが出来ればdein#load_toml()
で読み込むようにした。dein#begin()
の第二引数に監視対象のファイルを指定するようにしているため、こちらにも端末固有のTOMLファイルを追加するようにする。
あとは端末固有のTOMLファイル(私の例では~/.vim/dein/config_local.toml
)にそれぞれの端末でのみ使いたいプラグインを列挙しておけば良い。