所以我的问题是,如果我在vim中编写一些代码然后想要提前20分钟返回,那么我输入:earlier 20mvim.但如果我退出vim一次甚至重新启动系统,这不起作用.我知道它存储在临时寄存器中,一旦vim重新启动,它就会清除整个寄存器缓冲区.但有什么方法可以保存最后的更改并应用一些撤消机制.实际上我在处理一些大项目文件,如果出现错误,我就不能回去了.
在Vim 7.3或更高版本中,您可以使用撤消文件.
把它放在你的.vimrc中.
set undofile
Run Code Online (Sandbox Code Playgroud)
默认情况下,这将保存100个要撤消的操作.如果你想要更多,你可以通过将它添加到你的.vimrc手动设置,无论你想要什么号码:
set undolevels=100
Run Code Online (Sandbox Code Playgroud)
持久撤消将在与您实际处理的文件相同的目录中创建撤消文件.如果您想将它们放在一个单独的目录中,这样它们就不会使您的文件系统混乱,请将其添加到.vimrc中:
set undodir=~/.vim/undo
Run Code Online (Sandbox Code Playgroud)
然后,您需要实际创建目录.从命令行:
mkdir ~/.vim/undo
Run Code Online (Sandbox Code Playgroud)
我会考虑使用版本控制而不是依赖于vim的持久撤消来跟踪项目中的更改.