在Vim中,我做了太多的撤消。如何撤消此操作(即重做)?
答案 0 :(得分:831)
控制 + - [R
答案 1 :(得分:124)
同时查看:undolist
,其中提供了撤消历史记录中的多条路径。如果您在撤消太多后意外键入内容,这将非常有用。
答案 2 :(得分:51)
奇怪没有人提到:earlier
/ :later
。要重做你需要做的一切
later 9999999d
(假设您最初在9999999天之前编辑过该文件),或者,如果您还记得当前撤消状态与所需撤消状态之间的差异,请使用Nh
,Nm
或{{1}分别为小时,分钟和秒。 + Ns
&lt; =&gt; <{1}}和:later N<CR>
用于文件写入。
答案 3 :(得分:39)
<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}
答案 4 :(得分:25)
在命令模式下,使用 U 键撤消并使用 Ctrl + r 重做。看看http://www.vim.org/htmldoc/undo.html。
答案 5 :(得分:12)
首先按 ESC 键退出编辑模式。
然后,
对于撤消,请使用 u 键多次撤消。
对于重做使用 CTRL + r 键
答案 6 :(得分:10)
请参阅"undo" and "redo" part of vim document。
:red [o] (重做一次撤消的更改)和{count} Ctrl + r (重做{count}次更改哪些都没有了)都没问题。
此外:早期 {count}(转到旧文本状态{count}次。)始终可以替代撤消和重做。
答案 7 :(得分:3)
CTRL + - [R
“r”是小写的。
答案 8 :(得分:2)
在Visual Studio中使用VsVim?
我在尝试提供bindings for vim-commands in Visual Studio的VsVim时遇到了这个问题。
我知道vim本身中的 ctrl r ,但这个特殊的绑定在VsVim中不起作用(至少在我的设置中不起作用?)。
的工作原理是命令:red
。这比上面的麻烦有点麻烦,但是当你真的需要它时仍然很好。
答案 9 :(得分:1)
实际上,:undolist很难使用和vim的:早期和:后来跟踪变化只能用于课程修复。 鉴于此,我采用了一个插件,它结合了这些功能,提供了一个可浏览的可视树,称为“gundo”。 显然,这只是在您需要细粒度修复时使用,或者您不确定要返回的文档的确切状态。请参阅:https://sjl.bitbucket.io/gundo.vim/