在vim中,如果你set incsearch
,它将滚动到你当前搜索词的下一个匹配而不移动光标。我经常使用它来读取一段代码而不将光标移动到那里,因为我可以点击<ESC>
,当我开始搜索时,屏幕将返回光标所在的位置。
然而,在你点击<ESC>
之后,在它滚动回光标之前,vim有一个暂停。我发现这个停顿非常恼人。这个暂停的目的是什么,和/或这个暂停是可配置的?
答案 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。