Vim でシンタックスハイライトが突然オフになる現象の対処方法

覚書っていうか情報共有というか。

結構前からこの現象に悩まされていたんですが、わたしの場合は 'redrawtime' が原因だったのでその設定を見直すことで対処出来ました。
他にもこの現象に悩まされている人がいれば上記の手段を試してみてください。

追記

unite.vim を使っている方は内部で 'redrawtime' が書き換えられる可能性があるので、unite.vim を更新すると対処出来るかもしれません(最新版の unite.vim では 'redrawtime' 自体の変更が削除されました。

追記2 : 'redrawtime' について

'redrawtime' は、

  • Vim が再描画を行う際に『'redrawtime' に設定された以上の時間がかかる場合』にハイライトを無効にする

というような機能になります。
なので 'redrawtime' で低い値(ミリ秒)が設定されていたり、描画に時間がかかるような場合にハイライトが無効化されます。
また、『Vim が再描画を行う際』というのも様々で、

  • hlsearch がオンの場合のパターン検索
  • :match
  • syntax on
  • matchadd() を行った時

などなど、いろいろなタイミングがあります。
もし、突然ハイライトが消えてしまった場合は 'redrawtime' の値が低くなっていないか(既定値は 2000)、描画が遅くなかったか、などを確認してみるとよいと思います。