通常,当我想在Vim中编辑文本时撤消更改时,我必须:
Esc
u
撤消更改i
,o
等进入插入模式...)现在,我只是一个初学者,但据我所知,在插入模式下,您可以使用Ctrl-O
暂时转入一个命令的正常模式。
知道这一点,当我想要撤消文本中的更改时,我想:为什么不只是进入临时正常模式并按u
而不必处理Esc
的所有恶作剧并切换模式之间?
所以我做了以下事情:
Ctrl-O
u
撤消更改它有效......除非它非常非常。慢。 执行撤销后,光标会立即放置在该位置,但文本中的更改不会显示,直到约2秒后。这已经很长时间了。
我认为这只是我的电脑由于某种原因而慢慢运行,但我做了老派的方式,撤消立即执行。当然,并非所有命令的情况都是如此。当我尝试dd
并删除整行时,它会立即按预期工作 -
所以我的问题是:为什么?临时正常模式与按下Esc
时输入的正常模式不同吗?它与缓冲区,交换文件或幕后发生的任何事情有关吗?这是在Vim编辑器中实现undo
的方式吗?
答案 0 :(得分:2)
看起来Vim正在等待可能的第二次按键,即对命令的动作(例如,dw
,其正常执行)。显然u
命令没有动作,但是双击uu
会快速执行撤消,然后它会将下一个u插入到文档中。我怀疑这是'临时正常模式'如何决定何时返回'插入模式'的怪癖。