Vim。シンタックスのハイライトが無効になる時は、redrawtimeを多めに設定すればいい

徒然草2.0

リモートでVimのファイルを開いた時に、シンタックスハイライトが無効になる現象に悩まされていました。

決まって、1万行以上あるソースコードを1万行ほどスキップした時なんかにシンタックスハイライトが外れます。

最初はカッコ閉じなどが壊れているのかと思いましたが、数十行ごとにスキップしても正常にシンタックスハイライトされるので、

ファイルが肥大化しているせいにあるということは分かりました。端的に.vimrcへ以下のコードを書くことで解決しました。

" ハイライト無効になる読み込み時間の設定(デフォルトは2000らしい)
set redrawtime=6000

redrawtimeが2000msで設定されており、2000ms以上の読み込み時間がかかった場合はもたつきを軽減するためにシンタックスハイライトがオフになるようなのです。たしかに2000ms以上の読み込み時間がかかるともたつきは感じますが…そこまで大きな弊害ではないかなという感じです。とりあえず3倍の6000行に変更しましたが、リモート経由でがちゃがちゃいじるソースコードの長さは1万行ぐらいに抑えておいたほうが賢明な気も致します。
多くても3万行かなあ。とはいえ肥大化したソースコードのファイルを減らすのも億劫ですが。今更別のオブジェクトに分割してもソフトウェア品質に資するメリットがある気もしない。。

徒然草2.0
スポンサーリンク
シェアする
gomiryoをフォローする
ごみぶろぐ

コメント

タイトルとURLをコピーしました