Vimでインサートモードからノーマルモードに戻るのに微妙な間が空いてイラッとする
現象
インサートモードからノーマルモードに戻るのに1秒くらい待たされてイラッとする
結論
犯人は最近入れた https://github.com/Townk/vim-autoclose だったよう。
neocompleteとかの相性が悪いようです。
neocomplete#close.popup() bind key · Issue #347 · Shougo/neocomplete.vim · GitHub
調査内容
まず、.vimrcのプラグインをコメントアウトしたりして症状を見ると、vim-airlineが遅いと判明。
vim-airlineのリポジトリにて、issueやドキュメントを漁ったところ、ありました!
https://github.com/bling/vim-airline/wiki/FAQ#there-is-a-pause-when-leaving-insert-mode
There is a pause when leaving insert mode
の解決策は
You need to set timeoutlen to a low number; 50 is recommended.
でした。
そこで
set timeout timeoutlen=50
を.vimrcに追記したところ、解決!
と思いきやまだ変。
しゃーなく、timeoutlenとかでググったページで
http://calcurio.com/wordpress/?p=1101
で、ttimeoutlenなる設定があると知り
set timeout timeoutlen=1000 ttimeoutlen=50
にしたら若干良くなりましたが、neocompleteの挙動が変。
ESC押してもノーマルモードに戻れない。
そこで、neocompleteのissueを探したところ、該当するissueを発見した訳です。
学び
変な挙動になるのは、大抵、直近で加えた変更が原因。
.vimrcとかもコマ目にコミットして履歴を残すのが大事。