18

私の vim の起動時間は約 0.5 秒 (「--startuptime」でテスト) ですが、.vimrc を介して数回リロードするとsource、その後遅くなります。体系的な方法で .vimrc をデバッグしていないため、どのように進めればよいかわかりません。設定verboseすると、何が起こっているかを確認するのに役立ち、.vimrc が複数回読み込まれていることはほぼ確実です。(特にfiletype.vimと)ハングを止めるためftplugin.vimに を押すたびにでエラーが発生します。私が見る最も可能性の高い原因は、.vimrc の自動リロードです。Ctrl-Cfiletype.vimfiletype.vim

if has("autocmd")
    autocmd bufwritepost .vimrc source $MYVIMRC "auto source vimrc
endif

どうすればこれを防ぐことができますか?

4

2 に答える 2

28

ここでの犯人は、の使用ですautocmd。で自動コマンドを定義すると

autocmd <Event> <Action>

vim は、既存のものに関係なく、新しい auto コマンドを定義します。したがって、そのような自動コマンドがいくつか.vimrcあり、それを繰り返しソースする場合 (この場合は書き込みごとに)、同じことを繰り返し実行する何百、何千もの自動コマンドを定義することになります。すぐにこれが爆発し、vim セッションが遅くなります。これは、あなたが気付いていることです。

代わりに、auto コマンドをグループ化し、そのグループの定義を でクリアする必要がありますautocmd!。簡単な例として:

augroup Group1  
    autocmd!
    autocmd <Event1> <Action1>
    autocmd <Event2> <Action2>
    ...    
augroup END

好きなだけグループを持つことができるので、同様のアクション/イベントでグループを整理できます。

于 2013-03-12T06:16:42.337 に答える