我在使用<Esc>
或<C-[>
退出命令行模式时遇到延迟问题.似乎vim正在等待我是否要进入键盘映射,并且我已经改变了我的ttimeoutlen并且它没有改变延迟但是它并不是我想要的.我宁愿不要拖延
我做了一个:map,看看是否有任何映射期望<Esc>
...或<C-[>
......但是看不到任何这样做.
除了设置 ttimeoutlen,您还设置 ttimeout 吗?这是打开该功能所必需的。我的 .vimrc 中有以下内容:
set ttimeout
set ttimeoutlen=100
Run Code Online (Sandbox Code Playgroud)
现在我在 ESC 之后没有延迟(即使在没有 GUI 的情况下运行),即使我有涉及 ESC 的地图。例如:
if !has("gui_running")
set <A-v>=<1b>v
endif
inoremap <A-v> <C-o>"+p
Run Code Online (Sandbox Code Playgroud)
(注意上面的 <1b> 是使用“Ctrl-v ESC”编写的)
为了扩展 @AdeYU 在该问题上发布的评论,地图的 vim 参考说存在三种不同类型的映射可以影响命令行:
您必须检查所有三个,以排除映射是导致问题的原因。
更新:尽管文档似乎表明了这一点,如果我创建一个以 escape 开头的 imap,那么在命令行模式下按 escape 确实会突然需要更长的时间来响应。我想你也必须清除 imap。