在Vim中,我做了太多撤销操作。我该如何撤消(即重做)?
在Vim中,我做了太多撤销操作。我该如何撤消(即重做)?
Answers:
Ctrl+r
Cmd + r
了吗?它确实做了一些奇怪的事情。但Ctrl + r
对我来说效果很好(Mac + tmux + vim)
还请检出:undolist
,它提供了撤消历史记录的多个路径。如果您在撤消太多内容后不小心输入了某些内容,这将很有用。
:undolist
和类型:undo 178
(比方说)后退到步骤178
:undolist
吗?
使用:earlier
/ :later
。重做您只需要做的一切
later 9999999d
(假设你第一次编辑最多9999999天前的文件),或者,如果你还记得当前撤销状态,需要一个,使用之间的区别Nh
,Nm
或者Ns
几个小时,分钟和秒分别。+ :later N<CR>
<=> Ng+
并:later Nf
用于文件写入。
:later
为我工作vi
(不是vim-在Google上搜索“ vi”,但所有结果都是“ vim”),谢谢!
vi
命令的地方,它都是vim可执行文件或其副本的符号链接。虽然并非到处都是。
vim: command not found
。接下来要做的是alias vim=vi
因为我自动键入了它,但是它仍然是普通的旧vi。另外,如果vi是vim的别名,则redo(ctrl + r)也可以正常工作。
<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。
请参考Vim文档的“撤消”和“重做”部分。
:red [o](重做一项撤消的更改)和{count} Ctrl+ r(重做{count}撤消的更改)都可以。
另外,:更早 {count}(进入较旧的文本状态{count}次)始终可以替代undo和redo。
CTRL+r
“ r”是小写字母。
^r
和之间没有区别^R
,而Vim遵循这一点。
^X
(其中X
可以是任何字母)。
使用VsVim for Visual Studio吗?
我在尝试VsVim时遇到了这个问题,VsVim 为Visual Studio中的Vim命令提供了绑定。
我知道 Ctrlr Vim本身,但是这种特定的绑定在VsVim中不起作用(至少在我的设置中不起作用?)。
什么做不过的工作,就是命令:red
。与上面相比,这有点麻烦,但是在您真正需要它时仍然可以。
实际上,这:undolist
是很难使用的,Vim :earlier
和:later
更改的时间跟踪仅可用于修复过程中的问题。
鉴于此,我求助于一个将这些功能结合在一起的插件,以提供可视化的可浏览撤消树,称为“ Gundo”。
显然,仅当您需要细粒度的修复程序,或者不确定要返回的文档的确切状态时,才可以使用此功能。请参阅:Gundo。用样式绘制Vim撤消树