vim-plug: プラグインがインストール済みかどうかを判定する
追記: 以下の記事にfunction! s:plug.is_installed(name)
としてプラグインの存在確認方法が載っていました。
おい、NeoBundle もいいけど vim-plug 使えよ by @b4b4r07 on @Qiita
例として、プラグインの存在確認をするための関数を定義してみます。vim-plug ではプラグインのリストがグローバル変数 g:plugs に辞書として格納されているので、これをうまく利用します。
vim-plugはVimのプラグインマネージャー。
今回、NeoBundleからvim-plugへ乗り換えたので、その時にしたことをメモ。
vim-plugにはNeoBundleのneobundle#is_installed({bundle-name})
に相当する関数がないため、プラグイン依存の設定をvimrcに書きたいときに少し不便。
そこで、以下のような関数is_plugged({plugin-name})
を書いて、プラグインがインストール済みかどうかを判定する。
" check the specified plugin is installed function s:is_plugged(name) if exists('g:plugs') && has_key(g:plugs, a:name) && isdirectory(g:plugs[a:name].dir) return 1 else return 0 endif endfunction
以下のように、neobundle#is_installed({bundle-name})
と同じように使用できる。
" w3m plugin setting if s:is_plugged("w3m.vim") let g:w3m#external_browser = 'open' let g:w3m#download_ext = [ 'zip', 'lzh', 'cab', 'tar', 'gz', 'z', 'exe' ] let g:w3m#search_engine = 'http://www.google.co.jp/search?ie=' . &encoding . '&q=%s' nmap <Space>w :W3m endif " vim-go plugin setting if s:is_plugged("vim-go") let g:go_bin_path = expand("~/.vim-go") endif