在vim中,如果你set incsearch那么它将滚动到你当前搜索词的下一个匹配而不移动光标.我经常使用它来读取一段代码而不将光标移动到那里,因为我可以点击<ESC>,屏幕将返回到我开始搜索时光标所在的位置.
但是,vim在您点击之后有一个暂停<ESC>,并且在它滚动回光标之前.我觉得这个停顿非常恼人.暂停的目的是什么,和/或这个暂停是可配置的?
我假设你在终端上运行Vim.<Esc>是许多终端转义序列的开始字符,例如光标移动或Alt/ Meta+其他键.如果你在配置中的某个地方定义了一些alt/meta键映射,Vim会在你点击后等待一下,Esc以确保该<Esc>字符不是更长序列的开头.
您可能希望相应地检查:help 'timeout'和调整设置.timeoutlen如果需要,您可以设置较短的持续时间(ttimeoutlen默认设置为-1,因此不使用它).
编辑:如果你在tmux或GNU屏幕上运行Vim,这可能不足以阻止暂停.如果使用tmux,set -s escape-time 0请按照Vicent Marti的建议添加到.tmux.conf中.如果使用GNU屏幕,您可能会成功添加
maptimeout 0
defc1 off
Run Code Online (Sandbox Code Playgroud)
到你的.screenrc,正如brian_ruiz在这里所建议的那样.