neobundle.vim でプラグインが読み込まれた時に処理を hook する

neobundle.vimプラグインが読み込まれた時に処理を hook することができるようになりました。
neobundle#get 関数を使用して hook することができます。


" vimshell だとこんな感じ

let s:bundle = neobundle#get("vimshell")
" hooks の初期化
let s:bundle.hooks = get(s:bundle, "hooks", {})

" source 後に呼び出される処理を記述する
function! s:bundle.hooks.on_source(bundle)
    let g:vimshell_split_command = "split"

    " 表示形式
    let g:vimshell_prompt = $VIMUSERNAME."% "

    MyAutocmd FileType int-*
        \ inoremap <buffer> <expr><silent> <C-l> unite#sources#vimshell_history#start_complete(0)
endfunction
unlet s:bundle

" キーマッピングからコマンドの呼び出し
nnoremap <silent> <Space>vs  VimShell
nnoremap <silent> <Space>vsi VimShellInteractive --split='split \| resize 12'<CR>

" コマンドが呼ばれるまでプラグインが読み込まれずに上記の初期設定も処理されない
NeoBundleLazy 'Shougo/vimshell', {
\   'autoload' : { 'commands' : [ 'VimShell', "VimShellPop", "VimShellInteractive" ] }
\}


こんな感じでプラグインの初期化処理も遅延処理することができるようになりました。