1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vimをより暗黒パワーに染めるべくdein.vimに端末固有のプラグインをロードさせるようにするメモ

Last updated at Posted at 2016-10-27

はじめに

昨日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)にそれぞれの端末でのみ使いたいプラグインを列挙しておけば良い。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?