Vim、Ruby編集時にinsert modeが異常に重くなる現象の解決方法
概要
すごく重い。ファイルのサイズが大きい場合に顕著。
# ... loop { array=[1,2, # たとえばこのへんで入力してるとき } # ...
原因
matchitとかmatchparenあたりかと思ったが違った。
very slow insert mode in classes · Issue #8 · vim-ruby/vim-ruby · GitHub
結論としては、 foldmethod=syntax に設定してるのが原因。
解決方法
Insert modeのときはfoldmethodを変更する事で解決する。
私は以下の設定を使いました。
Keep folds closed while inserting text | Vim Tips Wiki | FANDOM powered by Wikia
" Don't screw up folds when inserting text that might affect them, until " leaving insert mode. Foldmethod is local to the window. Protect against " screwing up folding when switching between windows. 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