重い腰を上げて Neovim ことはじめ ー Neobundle から Dein.vim への移行編
Vim のプラグイン管理には Neobundle というプラグイン(パッケージ)マネージャのお世話になっており、これといって不満はないんです。ただ Neobundle
はもうバグ修正しかしないようですし、いつかは他のプラグインに乗り換えるのかな(面倒くさい……)とは考えていました。そんな折に Neovim へ移行することにしたので、これを機に見通しの悪い .vimrc
を含め設定ファイルを見直して整理して、さらに Dein.vim に移行してみました、というのが今回の内容です。話が横道に逸れますが、Vim にプラグインマネージャが浸透し始めたのは 2010 年頃 のようで、自身も pathogen.vim
、Vundle
と使ってみて 2012 年の終わり頃から NeoBundle
を使ってきました。変化の早さに驚くばかりです。
さて話を戻して、このトピックに関しては日本語の情報がたくさんあります。ここ、ここ、ここ、ここ、ここ、ここ……(たぶんまだまだある)。これらの情報に加えて、SpaceVim の設定と、Dein.vim
の作者である Shougo さんの 環境 を参考に設定してみました。なるべく複雑にしないことを目標に。
結果、このような構成になりました。
~/.config/nvim/ ├── config │ ├── dein.toml │ ├── dein.vim │ ├── dein_lazy.toml │ ├── dein_local.toml │ ├── init.vim │ ├── main.vim │ └── settings.vim ├── init.vim
init.vim
は config/main.vim
を読み込み、この config/main.vim
は同じディレクトリにある init.vim
、dein.vim
、settings.vim
を順に読み込む、という感じです。dein.vim
は dein.toml
、dein_local.toml
(ローカルに保存してあるプラグイン)、dein_lazy.toml
をそれぞれ dein#load_toml()
します。
基本的には、SpaceVim の init.vim
および config/init.vim
をほとんどそのままコピーして、.vimrc
内のプラグインに関する記述を TOML ファイルに、残った設定を settings.vim
に移行しました。TOML ファイル内で、プラグインのインストール情報(repo
キー)と共に関連する設定を hook_*
というキーでまとめて書いておけるのがすっきりして良いなと思ってます。
例えば、こんな感じ。
[[plugins]] repo = 'ctrlpvim/ctrlp.vim' hook_add = ''' let g:ctrlp_map = '<Leader>cp' '''
ちなみに hook に関する情報は ここ が詳しそうです。
まとめ。Neobundle
から Dein.vim
へ移行しました。次回は、新しく導入したプラグインの紹介編です。