はじめに
昨日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.vim
if &compatible
set nocompatible
endif
augroup MyAutoCmd
autocmd!
augroup END
let s:dein_dir = $HOME . '/.vim/dein'
let s: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')
let g:dein_toml_list = []
endif
let g:dein_toml_list += [s:dein_dir . '/config.toml', s:dein_dir . '/config_local.toml']
if dein#load_state(s:dein_dir)
call dein#begin(s:dein_dir)
for toml in g:dein_toml_list
if filereadable(toml)
call dein#load_toml(toml)
endif
endfor
call dein#end()
call dein#save_state()
if dein#check_install()
call dein#install()
endif
endif
silent! execute 'helptags' s:dein_repo_dir . '/doc/'
g:dein_toml_list
というリストを準備し、そこに読み込ませるTOMLファイルをひたすら追加していく。
その後それぞれファイルが存在し読み込むことが出来ればdein#load_toml()
で読み込むようにした。
dein#begin()
の第二引数に監視対象のファイルを指定するようにしているため、こちらにも端末固有のTOMLファイルを追加するようにする。
2016/10/31 Update Shougo氏からご指摘いただき、dein#begin()
の第二引数を削除(コメント参照)
あとは端末固有のTOMLファイル(私の例では~/.vim/dein/config_local.toml
)にそれぞれの端末でのみ使いたいプラグインを列挙しておけば良い。