OS X 環境でCUI vim を操作しているとグっと固まる現象

症状

  • OS X 環境でCUI vim を操作しているとグっと固まる
  • カーソルを左右に移動しようとキー長押ししている時によく起る
  • Ctrl-C のシーケンスを送ると復帰して操作できる
  • GUI vim では起きない
  • MacVim(KaoriYa)、/usr/bin/vim 両方で起きる
  • vim --noplugin でも起きる
  • vim -u /dev/null で起きない
  • screen/tmux には依存せず
  • :message にはエラーの形跡なし

確認手順

  • 症状からVIMRC 内に問題箇所があると推測
  • コメントアウト→再現確認で繰り返し
  • set visualbell の行に依存していることが判明
  • set novisualbell をすると起きないことを確認
  • とりあえず :h vb 、t_vb の文字列をエスケープシーケンスを発行していることを確認
  • term=xterm-256color
  • t_vb=^[[?5h$<100/>^[[?5l
  • TERM=screen-256color vim で起きないことを確認
  • xterm 系のtermcap? を使っている時のみ起きそう
  • xterm 系のビジュアルベルのエスケープシーケンス発行時にエラー、タイムアウト、などが起きていると今時点での知識から推測

対策

  • set novisualbell でフリーズはない。ビープ音が鳴る。
  • set visualbell t_vb= でビープ音もならなく、フリーズもない。が、ビジュアルベルを握り潰しているのでBEEPには気付かない

さらに知りたいこと

  • もっと効率的な確認方法やコマンド
  • 起きている現象の詳細と正解の解決方法