私は長いコメント行でソース コードを視覚的に区切るのが好きです。C++ では 80/
文字、Python では 80#
文字などを使用します。長年にわたり、Vim を移動するときに時々ヒッチ (約 0.5 秒ほど応答が停止する) が発生することに気付いていましたが、今日、これが区切り行でのみ発生することがわかりました。
例えば:
line 1
line 2
////////////////////////////////////////////////////////////////////////////////
line 4
line 5
カーソルが 3 行目のどこかにある場合、どのような動き (上、下、ページアップ、ページダウン、左、右、、、$
... 0
) でもほぼ常に遅延が発生しますが、他の行では遅延は発生しません。
これをいろいろ試してみたところ、次のことがわかりました。
- 遅延は、 を除く行の任意の場所に合計 40 個以上の記号 ( 、 、 など) がある行で発生するようです(おそらく、
/
の-
Vim=
定義にアンダースコアが含まれているため)。.
#
_
word
- 行が長くなれば遅延は増えないようです。たとえば、1000
/
文字の行では 40 文字の行と同程度の遅延が発生します/
。 - 遅延は、その行から「新しい」移動を開始するときにのみ発生します。OS キーの繰り返しを使用して行を移動しても、遅延は発生しません。
- 遅延は構文の強調表示やプラグインとは関係ないようです。、、でも同じ動作が見
vim -u NONE
られsyntax off
ますfiletype=
。 - GUI Vim (gvim) にはこの問題はないようです。
私は MacBook Pro のターミナル アプリで macports の MacVim 8.0 を使用していますが、Apple が提供するデフォルトの Vim 7.4 でも同じ動作になります。
Google、Stack Overflow、Super User でこれに関する言及を見つけることができませんでしたが、私のシステムでは非常に再現可能です。
これは既知の問題ですか? これを制御するランタイム設定またはビルド オプション (行でサポートされるシンボルの最大数など)、またはこれを緩和する回避策はありますか?