如何在vim下次重启之前永久保存最后一个代码

May*_*kar 3 vim

所以我的问题是,如果我在vim中编写一些代码然后想要提前20分钟返回,那么我输入:earlier 20mvim.但如果我退出vim一次甚至重新启动系统,这不起作用.我知道它存储在临时寄存器中,一旦vim重新启动,它就会清除整个寄存器缓冲区.但有什么方法可以保存最后的更改并应用一些撤消机制.实际上我在处理一些大项目文件,如果出现错误,我就不能回去了.

DoY*_*Bro 5

在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的持久撤消来跟踪项目中的更改.

  • 大约5年前,Vim 7.3 [发布](https://groups.google.com/forum/#!msg/vim_announce/ZsAu_RUjVUs/wrLPfs0dJeIJ).这些天,"undodir"非常稳定. (2认同)