Vimが暴走?
VimでRuby書いていると,Insert mode時にときどきCPU利用率が100%になる.
最初はneocompleteやvim-railsあたりが暴走しているのかと考えていたが,検証してみたら全然違っていた.
どうやらVimのfoldingに関する既知のIssueだったみたいだ(very slow insert mode in classes · Issue #8 · vim-ruby/vim-ruby).
具体的に言うと,foldmethod=syntax
のときに重くなることがあるみたい.
対処法
その1: foldしない
つら.
その2: foldmethod=indent
だいぶマシ.
その3: Insert mode時のみfoldmethod=manual
KOOL.
.vimrc
set foldenable
set foldmethod=syntax
autocmd InsertEnter * if !exists('w:last_fdm')
\| let w:last_fdm=&foldmethod
\| setlocal foldmethod=manual
\| endif
autocmd InsertLeave,WinLeave * if exists('w:last_fdm')
\| let &l:foldmethod=w:last_fdm
\| unlet w:last_fdm
\| endif
まだ重い?
スクロールが重いとかだったら,cursor[line|column]
が原因の可能性もある(GUIなVimは別,terminal上のVimのみ).
カーソルが動くたびに背景書き直してるなら当たり前とも言えるかもしれない(僕の場合は背景を透過していたので余計にかも).