Vim命令行转义超时

Kev*_*yar 5 vim

我在使用<Esc><C-[>退出命令行模式时遇到延迟问题.似乎vim正在等待我是否要进入键盘映射,并且我已经改变了我的ttimeoutlen并且它没有改变延迟但是它并不是我想要的.我宁愿不要拖延

我做了一个:map,看看是否有任何映射期望<Esc>...或<C-[>......但是看不到任何这样做.

Dan*_*lke 7

除了设置 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”编写的)


Lei*_*and 0

为了扩展 @AdeYU 在该问题上发布的评论,地图的 vim 参考说存在三种不同类型的映射可以影响命令行:

  • :地图
  • :cmap
  • : 地图

您必须检查所有三个,以排除映射是导致问题的原因。

更新:尽管文档似乎表明了这一点,如果我创建一个以 escape 开头的 imap,那么在命令行模式下按 escape 确实会突然需要更长的时间来响应。我想你也必须清除 imap。