如何永久保存最后一个代码,直到下次在vim中重新启动

如何永久保存最后一个代码,直到下次在vim中重新启动,vim,Vim,所以我的问题是,如果我正在用vim编写一些代码&然后想提前20分钟返回,那么我就在vim中键入:previous 20m。但如果我退出vim一次,甚至系统重新启动,这就不起作用了。我知道它被存储到临时寄存器中,一旦vim重新启动,它就会清除整个寄存器缓冲区。但是有没有办法保存最后的更改&应用一些撤销机制。实际上,我在处理一些大型项目文件&如果发生错误,我就不能返回。在Vim 7.3或更高版本中,可以使用撤销文件 把这个放进你的 set undofile 默认情况下,这将保存100个要撤消的操作

所以我的问题是,如果我正在用vim编写一些代码&然后想提前20分钟返回,那么我就在vim中键入
:previous 20m
。但如果我退出vim一次,甚至系统重新启动,这就不起作用了。我知道它被存储到临时寄存器中,一旦vim重新启动,它就会清除整个寄存器缓冲区。但是有没有办法保存最后的更改&应用一些撤销机制。实际上,我在处理一些大型项目文件&如果发生错误,我就不能返回。

在Vim 7.3或更高版本中,可以使用撤销文件

把这个放进你的

set undofile
默认情况下,这将保存100个要撤消的操作。如果您想要更多,可以通过将其添加到.vimrc中手动设置,使用您想要的任何数字:

set undolevels=100
持久撤消将在与实际处理的文件相同的目录中创建撤消文件。如果您想将它们放在一个单独的目录中,这样它们就不会扰乱您的文件系统,请将其添加到您的.vimrc中:

set undodir=~/.vim/undo
然后,您需要实际创建目录。从命令行:

mkdir ~/.vim/undo

我将研究使用版本控制,而不是依赖vim的持久撤消来跟踪项目中的更改。

我建议使用一些版本控制,如git,以实现您想要的。如果vim支持Python,您可能需要查看以下内容。将它与下面描述的
undodir
结合使用。Vim 7.3几乎是5年前的事了
undodir
现在相当稳定。而且,实际上只需要第一行代码。如果不设置undodir,您仍然可以获得持久撤消功能,但是撤消文件将分散在它们引用的文件旁边。您是否喜欢使用undodir进行整理取决于您的喜好。