我在使用<Esc>
或<C-[>
退出命令行模式时遇到延迟问题。看来vim正在等待看看我是否要进入一个keymapping,并且我已经改变了我的ttimeoutlen,它并没有改变延迟,但它并不是我想要的。我不希望有任何延迟Vim命令行转义超时
我已经做了一个:地图,看看是否有任何映射,期望<Esc>
...或<C-[>
...但没有看到任何做。
我在使用<Esc>
或<C-[>
退出命令行模式时遇到延迟问题。看来vim正在等待看看我是否要进入一个keymapping,并且我已经改变了我的ttimeoutlen,它并没有改变延迟,但它并不是我想要的。我不希望有任何延迟Vim命令行转义超时
我已经做了一个:地图,看看是否有任何映射,期望<Esc>
...或<C-[>
...但没有看到任何做。
要在发布关于该问题的评论@AdeYU扩大,vim reference for maps说,有三种不同类型的映射,可以影响命令行:
您必须检查全部三项以排除导致问题的映射。
更新:尽管文档似乎表明,如果我创建一个以escape为开头的imap,然后在命令行模式下执行escape命令会突然花费更长的时间来响应。我想你也必须清除imaps。
正在运行:地图显示所有映射,其模式位于最左侧的列中。 – 2012-02-23 05:36:28
@KevinColyar这也是我期望的行为,但是当我在vim 7.2和7.3中运行:map时,我没有看到我创建的cmapping或lmapping。当你试用它时,vim的行为会有所不同吗? – 2012-02-23 15:12:42
啊,你说得对。 你知道一个imap会在命令模式下导致超时问题吗? 我发现这个映射从delimitMate:'
除了设置ttimeoutlen之外,你还设置了ttimeout吗?这是打开功能所必需的。我在我的.vimrc如下:
set ttimeout
set ttimeoutlen=100
现在我得到(无GUI运行,即使)ESC后没有延迟,即使我有涉及ESC地图。例如:
if !has("gui_running")
set <A-v>=<1b>v
endif
inoremap <A-v> <C-o>"+p
(注意< 1B>以上使用 “CTRL-V ESC” 写)
我有这个设置,但它似乎对命令行模式没有影响。 – Peeja 2014-02-28 19:57:16
您应该用'查看:cmap',这显示在命令行模式的地图。 – 2012-02-22 17:23:19