vim:如何追溯白天对文件所做的所有更改

mab*_*enk 7 vim backup session files

有谁知道如何设置vim(文本编辑器),以便可以追溯一天内对文件所做的所有更改?当我不小心修改了一个子程序并希望将它返回到它的初始状态时,我需要它,就像在一天开始时一样。

我通常使用 svn 将最新版本的源代码保存在全局存储库中。但有时我需要返回代码在两次 svn 提交之间的状态。

更新:

要启用持久撤消,请创建撤消目录,例如~/.vim/undodir,并将以下设置放入.vimrc文件中:

set undodir=~/.vim/undodir
set undofile
set undolevels=1000
set undoreload=10000
Run Code Online (Sandbox Code Playgroud)

Ing*_*kat 15

如果 的值足够大'undolevel',Vim 应该能够撤消一整天的更改。如果你在这中间退出 Vim,你还需要通过设置选项来启用持久撤销'undofile'

Vim 不仅捕获用于撤消的命令的顺序列表,而且实际上捕获所有更改的树。它还有几个围绕 undo (cp. :help undo-branches) 的命令;回到一天开始时的状态,

:earlier 12h
Run Code Online (Sandbox Code Playgroud)

是一个很好的候选人。

也有插件,像Gundoundotree.vim,其可视化的撤销树,并允许浏览它。

如果导航撤销树听起来太麻烦(例如,因为你一整天都在做很多更改),你还可以添加一个轻量级的版本控制系统(除了 Subversion),比如我的writebackup 插件,并在特定时间显式创建一个备份次。