ターミナル上でvimを利用していると、カーソルの移動やスクロールが大変遅くなることがあって困ってる。
ターミナルのウインドウサイズを大きくしたり、画面分割したりして、ターミナルの画面書き換えの量や複雑さが高くなると、遅くなるようだ。KeyRemap4MacBookでキーリピートは早くしてあるし、vimではない単純な画面では表示の遅さは感じないので、vimをどうにかする必要があるとういことになった。
僕のMacの環境では Terminal.app が一番悪くて、カーソル移動するだけでも、かなり遅く感じる。iTerm2ではスクロールが発生しないカーソルの移動は問題ないが、スクロールが発生するカーソル移動を行うと遅く感じる。
調べてみると、困っている人は他にもいて、vimの設定などをいろいろ工夫している。
- Vim - General - Vim is too slow with syntax highlighting
- vim syntax highlight improve performance - Stack Overflow
- http://andrewbrookins.com/tech/slow-scrolling-in-vim-and-macvim-on-os-x-increase-key-repeat-settings/
一番初めのURLの回答(2008年の話なのでちょっと古い)で、「描画遅かったらgvim使え。」と言ってる人がいて、まぁ、おっしゃるとおりという感じはするので、ものはためしに、MacVimを利用してみた。
たしかにMacVimはスクロールがはやい。ウインドウサイズや画面の分割数を増やしてもMacVimではあまり遅くならない。(スクロールの様子を動画にしてみた。エントリの最後にある。) vimはターミナルから直接使えるのが良いところの1つだと思うのだけど、最近はスクロールのスピードがずっと気になっていたので、しばらくはMacVimを使って見ようと思う。
ターミナルやvimの設定しだいでなんとかなる気もするし、vimのスクロール速度について何か工夫があれば教えて欲しいです!
参考: Terminal.appとMacVimでのスクロールの様子
Termina.app/MacVimのそれぞれで、画面を2つに分割し、jキーを押したままにして50行程度スクロールしてみた。.vimrcはこちら。
Terminal.appでスクロール
MacVimでスクロール
参考: 利用した環境
- vim 7.4b.11 BETA / MacVim 20130713 (Vim 7.4a.9) /.vimrc
- Terminal.app 2.3 (309)
- iTerm2 build 1.0.0.20130624