グレインの備忘録

プログラミング関係とかをつらつらと。

deinを真面目に設定してみる(TOML)

deinはvimrcに設定を書くだけでも使える。

しかし、一般的にはTOMLと呼ばれる外部ファイルに書くらしい。

TOMLファイルを利用する

とりあえずTOMLを使う準備をしよう。

init.vimに以下の記述を追加する。

set runtimepath+=~/.vim/dein/repos/github.com/Shougo/dein.vim

let s:dein_dir = expand('~/.vim/dein')
let s:toml_dir = expand('~/.config/nvim')

"dein settings
if dein#load_state(s:dein_dir)
    call dein#begin(s:dein_dir)

   "Load TOML
    let s:toml = s:toml_dir . '/dein.toml'
    let s:lazy_toml = s:toml_dir '/dein_lazy.toml'

    call dein#load_toml(s:toml, {'lazy': 0})
    call dein#load_toml(s:lazy_toml, {'lazy': 1})

   "finalize
    call dein#end()
    call dein#save_state()
endif

この設定では、

  • deinは「~/.vim/dein/repos/github.com/Shougo/dein.vim」にcloneされている
  • TOMLは「~/.config/nvim/」以下に保存

となっている。必要に応じて該当箇所を変更すること。

起動時ロードと遅延ロード

次は、TOMLファイルに使いたいプラグインを列挙する。

ここで一つ注意する必要があるのが「遅延ロード」の存在だ。

今まで普通にdeinを使っていれば、プラグインは起動時にロードされていた。

しかし、「遅延ロード」を用いると、起動時より少し後にプラグインがロードされる。

これを用いることにより、起動時のロードを最小限にできることで起動速度が上がるらしい。

では、実際にTOMLを書いてみよう。

まずは起動時用。

# [dein.toml]

#以下のようにレポジトリ名を書くだけで良い
[[plugins]]
repo = 'Shougo/dein.vim'

[[plugins]]
# Lighline
repo = 'itchyny/lightline.vim'

[[plugins]]
# tender
repo = 'jacoborus/tender.vim'

ここでは利用していないが、他にもカスタマイズができるらしい。

参考:dein.vimによるプラグイン管理のマイベストプラクティス - Qiita

次に、遅延ロード用。

# [dein_lazy.toml]

[[plugins]]
# deoplete
repo = 'Shougo/deoplete.nvim'
hook_post_source = '''
    let g:deoplete#sources#clang#libclang_path = '/usr/lib/llvm-3.8/lib/libclang-3.8.so.1'
    let g:deoplete#sources#clang#clang_header = '/usr/include/clang'
    let g:deoplete#enable_at_startup = 1
'''

[[plugins]]
# deoplete-clang
repo = 'zchee/deoplete-clang'

基本は起動時用と同じだが、遅延ロードでは「hook_post_source」というオプションが利用できる。

これは、プラグインが遅延ロードされた直後に実行するコマンドを指定するものである。

プラグインの追加設定をiniv.vimに書くとロード前に実行されてしまうので、それを防ぐためにここに書く。


とりあえず導入だけをやってみた。

有り難みもそのうちわかってくるようになるんだろう、多分。