使用<esc>键取消搜索时,为什么vim incsearch会暂停?</esc>

时间:2012-06-01 18:28:45

标签: vim

在vim中,如果你set incsearch,它将滚动到你当前搜索词的下一个匹配而不移动光标。我经常使用它来读取一段代码而不将光标移动到那里,因为我可以点击<ESC>,当我开始搜索时,屏幕将返回光标所在的位置。

然而,在你点击<ESC>之后,在它滚动回光标之前,vim有一个暂停。我发现这个停顿非常恼人。这个暂停的目的是什么,和/或这个暂停是可配置的?

1 个答案:

答案 0 :(得分:7)

我假设你在终端上运行Vim。 <Esc>是许多终端转义序列的起始字符,例如光标移动或 Alt / Meta +其他键。如果你在配置中的某个地方定义了一些alt / meta键映射,那么当你点击 Esc 以确保<Esc>字符不是更长序列的开头时,Vim会稍等一下

您可能想要检查:help 'timeout'并相应地调整设置。如果需要,您可以将timeoutlen设置为较短的持续时间(ttimeoutlen默认设置为-1,因此不会使用它。)

编辑:如果您在tmux或GNU屏幕中运行Vim,这可能不足以阻止暂停。如果使用tmux,请尝试将set -s escape-time 0添加到.tmux.conf as suggested by Vicent Marti here。如果使用GNU屏幕,您可能会成功添加

maptimeout 0
defc1 off

到.screenrc,为suggested by brian_ruiz here