プラグイン記述時に NeoBundle ではなく NeoBundleLazy を使えばプラグインの有効化を可能な限り遅延することができます。おそらく大体の人は、commands, insert, mapping, filetype...をトリガーにして、自動で有効化させるように設定していると思います。
例えば、こんな感じです。
~/.vimrc
" コマンド入力するか、マップで呼び出すまで遅延される
NeoBundleLazy 'thinca/vim-quickrun', {
\ 'autoload': { 'commands': ['Quickrun'],
\ 'mappings': ['<Plug>(quickrun)'] },
\ }
一方、自動ではなく、手動で有効無効を切り替えたいときもあるかと思います。
その場合は、NeoBundleSourceとNeoBundleDisableを使います。
"" 有効化
:NeoBundleSource unite.vim"" 無効化
:NeoBundleDisable unite.vim"" 有効無効の確認
:NeoBundleList
# Shougo/neocomplete
kana/vim-textobj-entire
sickill/vim-monokai
# osyo-manga/shabadou.vim
# skammer/vim-css-color
LeafCage/yankround.vim
:NeoBundleList
したときに行頭に#
が付いているのが無効状態のプラグインです。
例えば、この中のskammer/vim-css-color
を有効化したい場合、コマンドラインで以下を入力すれば使えます。
:NeoBundleSource vim-css-color
ただ、コマンドラインウインドウは補完が聞くとはいえ、手入力は面倒です。
本題:もっと有効無効の切り替えを簡単に
実は、Neobundleには、Uniteのsourceが付属しているので、:Unite neobundle
すると、:NeoBundleList
と全く同じものが一覧になってUniteウインドウに表示されます。
これを見て、そうかプラグインを有効化するには、#
のやつをENTERすればいいんだなって思って押すと、残念なことに有効化じゃなくてプラグインのアップデートが始まります。
なんでこんな仕様なのかよく分かりませんが、直感的ではない気がするので、
これをアップデートではなく、有効無効のトグル動作にします。
NeoBundle 'Shougo/unite.vim'if neobundle#tap('unite.vim')function! neobundle#tapped.hooks.on_source(bundle) "" source/neobundleでプラグインの有効無効を切り替えるlet neobundle_toggle = { 'is_selectable': 1 }
function! neobundle_toggle.func(candidates)for candidate ina:candidates
let bundle = candidate.action__bundle_name
let cmd = neobundle#is_sourced(bundle) ?
\ 'NeoBundleDisable ' : 'NeoBundleSource '
exec cmd . bundle
endforendfunctioncall unite#custom#action('neobundle','source', neobundle_toggle)call unite#custom#default_action('neobundle','source')endfunctionendif
これで、#
の付いた行でENTERすれば、プラグインが有効化され、
逆にすでに有効化されていれば、無効化されるようになりました。
適当にマップして、すぐに開けるようにしておくといいと思います。
nnoremap<Space>up :<C-u>Unite neobundle<CR>