在VIM中编辑文档,有时候需要撤销所有修改,恢复文档到最初的状态。这时候,我们可以一般是连续按u
恢复到最初的状态。但如果已经修改了很多次的话,那就太麻烦了,下面是一些更简捷的方法。
-
用
:u1|u
返回最初状态,再按u
的话状态栏会显示“Already at oldest change”,表示文档已经在最初状态。u1
的意思是返回到修改号1(change number 1)之后,|
不是shell中的管道,而是多个命令的分割符,所以|u
的意思是再做一次undo。 -
用
:earlier 10000000
,10000000是一个尽量大的数,这个命令的意思是返回10000000次修改以前的状态。 -
用
10000000g-
,这个命令跟上面的:earlier 10000000
是一样的意思,但是是在普通模式下输入。 -
如果文档还没有保存的话,我们可以用
:q!
退出编辑,然后重新打开文档,但更简单的应该是用:e!
命令,重新加载文件。
*E830*
:u[ndo] {N} Jump to after change number {N}. See |undo-branches|
for the meaning of {N}. {not in Vi}
*:ea* *:earlier*
:earlier {count} Go to older text state {count} times.
*g-*
g- Go to older text state. With a count repeat that many
times. {not in Vi}
*:edit!* *discard*
:e[dit]! [++opt] [+cmd]
Edit the current file always. Discard any changes to
the current buffer. This is useful if you want to
start all over again.
Also see |++opt| and |+cmd|.
{Vi: no ++opt}
参考:http://stackoverflow.com/questions/8565357/undo-all-changes-since-opening-buffer-in-vim