我最近遇到了 vim 中的超时和 ttimeout 功能。
我使用键序列 jk 从插入模式退出到正常模式。我认为,按照这篇文章映射快速键码[参见 2b],我可以让我的 jk 序列遵守 ttimeoutlen,而我的所有其他映射都遵守 timeoutlen。这将是理想的,因为我可以在需要时非常快速地按下 jk,这样当我需要在文档中插入 jk 时,它就不会打断我的输入。
但是,按照上述文章的方法,它对我不起作用。我去了
:set timeout timeoutlen=1000 ttimeoutlen=100
:set <F13>=jk
:map <F13> <esc>
:map! <F13> <esc>
在插入模式下按下 j 会产生由我的 timeoutlen 而不是我的 ttimeoutlen 决定的延迟。
我做错了什么?这可能吗?只适用于转义序列吗?如果是,为什么?谢谢!
答案1
我关掉了电脑,醒来后又打开它,现在它似乎可以工作了......
此外,我将上面的代码更改为:
set timeout timeoutlen=1000 ttimeoutlen=100
set <f13>=jk
imap <F13> <esc>
我昨晚有这套设备,但它没有工作,所以我不知道“夜间休息”起了什么作用……
无论如何,对于所有使用 jk 或任何其他字母序列退出插入模式的人,我建议这样做。