【发布时间】:2016-05-29 00:04:57
【问题描述】:
通常,当我想在 Vim 中编辑文本时撤消更改时,我必须:
- 使用
Esc退出插入模式 - 按
u撤消更改 - 使用各种命令(
i、o等...)进入插入模式
现在,我只是一个初学者,但我知道在插入模式下,您可以通过使用 Ctrl-O 暂时退出一个命令进入普通模式。
知道了这一点,当我想撤消对文本的更改时,我想:为什么不直接进入临时普通模式并按u 而不必处理Esc 的所有恶作剧并在模式之间切换?
所以我做了以下事情:
- 使用
Ctrl-O为一个命令转入临时正常模式 - 按
u撤消更改 - 我自动处于插入模式并继续编辑。
它有效...除了它非常非常。慢。 执行撤消后,光标将立即放置在该位置,但文本中的更改直到大约 2 秒后才会显示。时间很长。
我认为这只是我的计算机由于某种原因运行缓慢,但我采用了老派的方式并且立即执行了撤消操作。当然,并非所有命令都是这种情况。当我尝试 dd 并删除整行时,它会按预期工作 - 立即。
所以我的问题是:为什么?临时正常模式与按下Esc 进入的正常模式不同吗?它是否与缓冲区、交换文件或幕后发生的任何事情有关?是不是undo在Vim编辑器中的实现方式?
【问题讨论】:
标签: vim