vim - 为什么在使用 <ESC> 键取消搜索时 vim incsearch 会暂停?

标签 vim

在 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/

相关文章:

在vim中编辑的python文件移动到intellij会遇到缩进不一致错误

vim - 在 Vim 中跨页选择?

php - Vim 完成 + php 命名空间

regex - 如何使用vim/grep否定 future

vim - 如何将字符串 $foo$ 转换为\(foo\) 并将 $$bar$$ 转换为\[bar\]

vim - 有没有办法让 yanks 在 vi​​m 中可视化?

linux - 未知消息 : Panel when opening gvim

linux - VIM 中的一些 bash 命令将输出发送到 bash 而不是 VIM

git - 从命令行覆盖 .gitattributes

javascript - vim 与 syntastic 和 eslint : show warnings