在 vim 中,如果你 set incsearch
然后它将滚动到当前搜索词的下一个匹配项而不移动光标。我经常用它来阅读一段代码而无需将光标移到那里,因为这样我就可以点击 <ESC>
。屏幕将返回到我开始搜索时光标所在的位置。
但是,在您点击 <ESC>
之后,vim 会暂停, 在它滚动回光标之前。我发现这种停顿非常恼人。此暂停背后的目的是什么,和/或此暂停是否可配置?
最佳答案
我假设您正在终端中运行 Vim。 <Esc>
是许多终端转义序列的起始字符,例如光标移动或 Alt/Meta + 其他键。如果你在你的配置中的某处定义了一些 alt/meta 键映射,Vim 在你按下 Esc 后稍等片刻以确保 <Esc>
字符不是较长序列的开始。
您可能需要查看 :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 .
关于vim - 为什么在使用 <ESC> 键取消搜索时 vim incsearch 会暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10855539/