有时候 Vim 运行明显变慢

6
有时候vim的速度会明显变慢。当我在正常模式下打开一个100行的文件,输入"O" (大写字母o)后,需要大约1-2秒钟才会在当前行上方出现一个新的空行,进入插入模式(这是正常的行为)。我想知道可能的原因是什么...
我的电脑相当强大,所以问题不在电脑上。

4
给那位投票此问题“离题”的人:这个问题更适合在哪个论坛上,并且为什么它与编程无关?- 有些人靠编程谋生,vim是他们实现目标的工具,如果vim太慢,这肯定与编程有关。 - René Nyffenegger
有没有什么值得注意的消息(``:messages`)?如果您的vim构建了分析支持,可以尝试使用“:prof start”查看哪个操作需要最长时间...通常,此功能未编译,但您可以轻松地自行构建vim... - eckes
3个回答

8

输入:map O

如果你有一个以大写字母 O 开头的普通映射,那么可能 Vim 正等待超时以确保你不是要开始输入复杂的命令。

通常,超时默认为 1 秒。

请参见 :help timeout:help timeoutlen

如果你确实有一个以 O 开头的映射,请使用 :verbose map 命令找到它的定义。然后可以禁用、修改它 (或者删除定义该映射的插件)。


@skeept:好评,我不知道这是可能的。我已经更新了我的答案。 - Xavier T.
谢谢你的有趣回复,但是出现了“没有找到映射”的错误。并不总是出现O而是有时候……如果我有映射它就会一直出现。 - Zango

8
你是否在非常快的连续按下 <Esc> 然后按下 O? 如果是这样,那么你会看到由特定终端转义序列引起的延迟,这些序列以 <Esc>O 开始。 Vim 必须等待以查看您是否实际上正在键入其中之一。
要亲自查看此内容,请在插入模式下输入 <Esc>OA,您的光标应向上移动。 在插入模式下按下 <Ctrl-v><Up> 将显示生成的转义码。

是的,我打字太快了。我尝试过那种情况,你说得完全正确。非常感谢你。 - Zango

1

也许您有一个以“O”开头的重新定义的键绑定...因此VIM必须等待看您是否要输入以下按键


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接