Answers:
您正在寻找的定义undo-blocks
。
一个撤消命令通常撤消键入的命令,无论该命令进行了多少更改。可撤消更改的此序列形成一个撤消块。因此,如果键入的键调用一个函数,则该函数中的所有命令都将被撤消。
相同的块用于redo
。来自:h redo
:
记住最后的更改。您可以使用上面的undo和redo命令将文本还原为每次更改之前的状态。您还可以再次应用更改,在撤消之前找回文本。
Vim的模态编辑通常被视为一个操作者(例如c
,d
,...)施加在运动(例如iw
,w
,}
,...)。作为一项出色的副产品,Vim获得了大块的撤消功能。当其他编辑者不得不做出一些猜测才能将许多小的撤消变为撤消块时,Vim自然会这样做。另一个副作用是,这使您可以重复操作.
(也称为dot命令)。
您的问题专门提到了击键,因此我假设您想知道在插入模式下如何撤消小的更改。答案是这不是“ Vim方式”。“ Vim方式”意味着您一次将处于插入模式,短暂爆发。这意味着当在插入模式下出错时,您通常会退回到普通模式并更正文本,或者只是撤消u
,然后重写文本。
有时,在插入模式下需要拆分一个撤消块。这可以通过<c-g>u
在插入模式下完成。请参阅:h :undoj
和:h undo-blocks
了解更多信息。
如需更多帮助,我建议以下内容:
:h undo-blocks
:h :undoj
:h undo-tree
:h persistent-undo
:h undo.txt
关于此主题也有一些截屏视频:
CTRL-G u
在插入模式下使用命令手动拆分单个撤消块,如果您有一些插入模式宏,这将很有用。