NeoBundleのプラグイン管理をTOMLに任せてvimrcをスッキリさせる

#vim

NeoBundleがTOML1 parserを導入して、TOMLファイルにプラグイン管理を任せられるようになった。

設定ファイルのサンプル

vimrcの設定は、ドキュメントとShougo氏のvimrc2を参考にすると、neobundle#beginneobundle#endの間を以下のように書けば良さそうだ。

call neobundle#begin(expand('~/.vim/bundle/'))

if neobundle#has_cache()
  " キャッシュから高速に起動
  NeoBundleLoadCache
else
  NeoBundleFetch 'Shougo/neobundle.vim'

  " TOMLファイルを指定
  call neobundle#load_toml('~/.vim/neobundle.toml')
  " NeoBundleLazyで指定した場合と同じ
  call neobundle#load_toml('~/.vim/neobundlelazy.toml', {'lazy' : 1} )

  " TOMLパーサが遅いため、一度読み込んだ設定をキャッシュに保存
  NeoBundleSaveCache
endif

call neobundle#end()

2015/09/20 追記:

上記の設定は古くなっており、 neobundle#has_cache()NeoBundleLoadCache の併用に代わり、 neobundle#load_cache() を使った、より簡潔な記述が推奨されている。

--- if neobundle#has_cache()
---   " キャッシュから高速に起動
---   NeoBundleLoadCache
--- else
+++ if neobundle#load_cache()

追記ここまで。


vimrcに書かれていた大量のプラグインリストは、neobundle#load_tomlのおかげでたった数行に収められた。

ちなみに、遅延読み込みしたいプラグインとそうでないプラグインがある場合、1つのTOMLファイルだと管理が難しかったので、2つに分けている。 他により良い方法があったらご教授願いたい。

TOMLファイルは以下のように設定する。これもShougo氏によるサンプル3があるので参考にされたい。

[[plugins]]
repository = 'ctrlpvim/ctrlp.vim'

[[plugins]]
repository = 'Shougo/neocomplete.vim'
insert = 1

[[plugins]]
repository = 'osyo-manga/vim-watchdogs'
depends = ['osyo-manga/shabadou.vim', 'cohama/vim-hier']
filetypes = 'all'

その他細かな設定に関しては、私のvimrcを参考にしてもらうと良いかもしれない。 割と更新頻度が高いのと、あまり綺麗に管理出来てないのはご容赦。

終わりに

NeoBundle 'user/repo'NeoBundleLazy 'user/repo', { ... }でvimrcはどんどん縦に長くなっていたが、TOMLファイルに書き出すことで、vimrcをスッキリ整理できた。

最近は更に、vimrcに書く設定は最小限に留めるようにして、プラグインの設定はplugins.rc.vimに書くように切り替えた。

if filereadable(expand('~/.vim/plugins.rc.vim'))
  source ~/.vim/plugins.rc.vim
endif

以前はvimrcがジャングルみたいでやる気が起きなかったが、スッキリさせたおかげで、遅延読み込みを活用して、Vimの起動をもっと高速化させてみようとか考えるようになってきた。

エディタいじりは飽きないなあ。