Vim でシンタックスハイライトが突然オフになる現象の対処方法
覚書っていうか情報共有というか。
Vim の syntax が突然オフになる現象にお困りの方へ
— mattn (@mattn_jp) 2017年9月26日
* パッチ 8.0.0647~8.0.1132 の方 → 8.0.1133 以降にアップデート
* 8.0.1133 以降の方 → redrawtime の値をデフォルト値に戻してみて下さい
結構前からこの現象に悩まされていたんですが、わたしの場合は 'redrawtime'
が原因だったのでその設定を見直すことで対処出来ました。
他にもこの現象に悩まされている人がいれば上記の手段を試してみてください。
追記
unite.vim を使っている方は内部で 'redrawtime'
が書き換えられる可能性があるので、unite.vim を更新すると対処出来るかもしれません(最新版の unite.vim では 'redrawtime'
自体の変更が削除されました。
追記2 : 'redrawtime'
について
'redrawtime'
は、
- Vim が再描画を行う際に『
'redrawtime'
に設定された以上の時間がかかる場合』にハイライトを無効にする
というような機能になります。
なので 'redrawtime'
で低い値(ミリ秒)が設定されていたり、描画に時間がかかるような場合にハイライトが無効化されます。
また、『Vim が再描画を行う際』というのも様々で、
hlsearch
がオンの場合のパターン検索:match
時syntax on
時matchadd()
を行った時
などなど、いろいろなタイミングがあります。
もし、突然ハイライトが消えてしまった場合は 'redrawtime'
の値が低くなっていないか(既定値は 2000
)、描画が遅くなかったか、などを確認してみるとよいと思います。