但是当我这样做是,在我击中O后有1秒钟的延迟,然后才出现任何可见的响应。此外,如果我在1秒钟的延迟内开始输入新文本,如果新文本以某个字符集(例如j,k,m,n,o)中的任何一个开始,则我会以其他字符结尾我本来不想做的操作,经常弄得一团糟,这时我必须停下来,反复进行撤消和重做,直到我有理由确定自己没有破坏为止。
为了避免这种不愉快,每次输入O后,我都有暂停一秒钟的习惯。但这会减慢我的速度并阻止我成为原本应该成为Vim的速度恶魔。
是什么原因造成的?有修复程序或解决方法吗?
#1 楼
这仅发生在终端中,而不发生在GVIM中,对吗?原因是Vim不能区分各个类型的键和以相同键开头的ANSI Escape序列(例如^[O...
,<Esc>
和后跟O
)。您可以阅读所有底层内容
:help 'timeout'
(及以下选项)的复杂性。您还可以在其中找到缓解该问题的建议配置::set timeout timeoutlen=1000 ttimeoutlen=100
#2 楼
解决方法是,使用Control + OO代替ESCO。 Control + O使您进入一个命令的普通模式,然后在完成后返回到插入模式。
#3 楼
怎么样:Control + C O
使用Control + C时您应该注意一些细微之处。
评论
您也可以使用set noesckeys。这样做的副作用是在“插入”模式下禁用了箭头键(也许还有其他一些键?),因此可能并不适合所有人。
–马丁·图尔诺伊(Martin Tournoij)
15年5月13日在15:25
@Carpetsmoker关于“设置noesckeys” ...起作用,但仅在插入模式下有效。我知道我说过我首先处于插入模式;但是,我也经常从普通模式开始执行
–唐·哈奇
15年5月13日在20:53
@DonHatch可以使用:nnoremap ^ [O O,其中通过按
–马丁·图尔诺伊(Martin Tournoij)
15年5月13日在22:30