在Vim中,我做了太多撤销操作。我如何撤销这个(即,重做)?
Vim文档
<Undo> or *undo* *<Undo>* *u*
u Undo [count] changes. {Vi: only one level}
*:u* *:un* *:undo*
:u[ndo] Undo one change. {Vi: only one level}
*CTRL-R*
CTRL-R Redo [count] changes which were undone. {Vi: redraw screen}
*:red* *:redo* *redo*
:red[o] Redo one change which was undone. {Vi: no redo}
*U*
U Undo all latest changes on one line. {Vi: while not
moved off of it}
使用方法:早/:后来。重做所有你需要做的事情
later 9999999d
(假设您在9999999天前第一次编辑该文件),或者,如果您记得当前撤消状态和需要撤消状态之间的差异,请分别使用Nh、Nm或Ns表示小时、分钟和秒。+:later N<CR> <=> Ng+和:later Nf用于文件写入。
参考Vim文档中的“撤消”和“重做”部分。
:red[o](重做一个已取消的更改)和{count} Ctrl+r(重做{count}已取消的更改)都是可以的。
同样,:early {count}(转到旧文本状态{count}次)总是可以替代撤销和重做。
使用VsVim for Visual Studio?
我在尝试VsVim时遇到了这个问题,它为Visual Studio中的Vim命令提供绑定。
我知道在Vim本身的Ctrlr,但这个特殊的绑定不工作在VsVim(至少不是在我的设置?)
然而,真正起作用的是命令:red。这比上面的稍微麻烦一点,但当你真的需要它时,它仍然是好的。
实际上,:undolist很难使用,而Vim的:early和:later对更改的时间跟踪只能用于航向纹理修复。
鉴于此,我使用了一个插件,该插件将这些特性结合在一起,以提供一个可视的可浏览撤消操作树,称为“Gundo”。
显然,只有在需要细粒度修复,或者不确定希望返回的文档的确切状态时,才可以使用这种方法。看到:Gundo。图形化你的Vim撤销树的风格