最近vimに追加されたpackages
、timer
を使ってvimが起動した後にプラグインの読み込みができたらどうだろう?
と思ったのでやってみました。
以下のような設定をvimrcに追加してvimを起動するとvimが立ち上がってからプラグインが読み込まれます。
" vim起動後に~/.vim/pack/bundle/opt/vim-quickrunを読み込む例 let s:plugins = [ \ 'vim-quickrun', \ ] let s:idx = 0 function! PackAddHandler(timer) execute 'packadd ' . s:plugins[s:idx] let s:idx += 1 endfunction autocmd VimEnter * call timer_start(1, 'PackAddHandler', {'repeat': len(s:plugins)})
約150個のプラグインある状態のMacVim-KaoriYaで、起動時間が
- NeoBundle: 約530ms
- background loading: 約130ms
と、だいぶ高速化されました。
ただし、
packages
の仕様*1で読み込まれないプラグインがあったり、- 起動時に指定したファイルのfiletypeが(ファイルを開いた後に読み込まれるので)反映されなかったり、
- 引数の
-c
で指定したコマンドが(実行後に読み込まれるので)失敗したり、
するので有効に使うには色々と考えないといけなさそうです。
が 4月9日(土) に発売されます。
技術評論社さんのサイトにも来週にはページができるそうなので興味のある人はチェックしてみてください。