在 Vim 中,我做了太多撤消操作。如何撤消此操作(即重做)?
10 回答
Ctrl+r
另请查看:undolist
,它提供了通过撤消历史记录的多种路径。如果您在撤消过多后不小心键入了某些内容,这将很有用。
使用:earlier
/ :later
。重做你只需要做的一切
later 9999999d
(假设您最多在 9999999 天前第一次编辑该文件),或者,如果您记得当前撤消状态和所需撤消状态之间的区别,请使用Nh
或Nm
分别Ns
表示小时、分钟和秒。+ :later N<CR>
<=>Ng+
和:later Nf
文件写入。
<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}
在命令模式下,使用U键撤消和Ctrl+r重做。看看http://www.vim.org/htmldoc/undo.html。
首先按Esc键退出编辑模式。
然后,
对于undo,使用ukey 多次你想撤消。
对于重做,使用Ctrl+r键
:red[o](重做一项已撤消的更改)和 {count} Ctrl+ r(重做 {count} 个已撤消的更改)都可以。
此外,:earlier {count} (转到较旧的文本状态 {count} 次)总是可以替代撤消和重做。
CTRL+r
“r”是小写的。
在 Visual Studio 中使用 VsVim?
我在尝试 VsVim 时遇到了这个问题,它为Visual Studio 中的 Vim 命令提供绑定。
我知道CtrlrVim 本身,但是这个特定的绑定在 VsVim 中不起作用(至少在我的设置中不起作用?)。
然而,真正起作用的是 command :red
。这比上面的要麻烦一些,但是当你真正需要它时它仍然可以。
实际上,:undolist
它很难使用,而且 Vim 的更改:earlier
和:later
时间跟踪仅可用于课程粒度修复。
鉴于此,我求助于一个插件,它结合了这些功能来提供可浏览撤消的可视化树,称为“Gundo”。</p>
显然,只有当您需要细粒度的修复,或者您不确定要返回到的文档的确切状态时,才需要使用它。见:贡多。以风格绘制 Vim 撤消树