【Vim】Ruby書くときにVimが重くてつらいときは

  • 22
    Like
  • 1
    Comment
More than 1 year has passed since last update.

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のみ).
カーソルが動くたびに背景書き直してるなら当たり前とも言えるかもしれない(僕の場合は背景を透過していたので余計にかも).

参考URL