Vim 在包含 40 个或更多符号的行上移动延迟

Vim 在包含 40 个或更多符号的行上移动延迟

我喜欢通过长注释行来直观地划分源代码:在 C++ 中我使用 80 个/字符,在 Python 中我使用 80 个#字符,等等。多年来,我注意到当我四处移动时,Vim 偶尔会出现故障(停止响应约半秒钟左右);今天我发现这只发生在我的分隔符行上。

例如:

line 1
line 2
////////////////////////////////////////////////////////////////////////////////
line 4
line 5

当光标位于第 3 行的任意位置时,任何移动(向上、向下、向上翻页、向下翻页、向左、向右、、、$... 0)几乎总是会出现延迟;在其他行上则不会出现这种情况。

玩弄这个,我发现:

  • 延迟似乎发生在行上任何地方总共有 40 个或更多符号(/-=.#)的行上,不包括_(可能是因为下划线包含在 Vim 的定义中word)。
  • 对于较长的行,延迟似乎不会增加。例如,1000 个/字符的行与 40 个字符的行的延迟相似/
  • 仅当从该线开始“新”移动时才会发生延迟。使用 OS 按键重复移动穿过该线不会增加延迟。
  • 延迟似乎与语法高亮或插件无关:我看到vim -u NONEsyntax off和有相同的行为filetype=
  • GUI Vim (gvim) 似乎没有这个问题。

我在 MacBook Pro 上的终端应用程序中使用来自 macports 的 MacVim 8.0,但 Apple 提供的默认 Vim 7.4 具有相同的行为。

我无法在 Google、Stack Overflow 或 Super User 上找到对此的任何提及,但它在我的系统上很容易重现。

这是一个已知问题吗?是否有一个运行时设置或构建选项可以控制这个问题(一行上支持的最大符号数或其他),或者有缓解这个问题的解决方法?

相关内容