在进行重大更改之前,我在vim中意外地从一个过时的交换文件中“恢复”了该文件。我的更改似乎已经消失了。我尝试查看撤销树,但是还是有很多更改丢失了。是否有任何方式可以撤消恢复操作,还是我注定要失败?
在进行重大更改之前,我在vim中意外地从一个过时的交换文件中“恢复”了该文件。我的更改似乎已经消失了。我尝试查看撤销树,但是还是有很多更改丢失了。是否有任何方式可以撤消恢复操作,还是我注定要失败?
:e!
强制重新加载。 - Chaim Leib Halbert如果您意外地恢复了文件,您可以简单地输入:q!
以退出vim而不保存已恢复的更改 - 这将保留您的原始文件和交换文件。
下次打开文件时,您将看到相同的提示 - 按D
删除交换文件,或者手动查找并删除同一位置的任何其他交换文件。
我刚刚尝试了这个功能(启用了持久撤销;Vim版本为7.3.823)。旧的更改仍然显示在:undolist
中,但是当尝试恢复时,出现了问题。
E438: u_undo: line numbers wrong
看起来Vim无法处理这种情况。请注意,你已经被警告了;恢复明确警告:
Recovery completed. You should check if everything is OK.
E308: Warning: Original file may have been changed
E310
,并且旧的交换文件没有应用于更新的文件(这将防止您的问题)。 - Ingo Karkat
。你有检查过吗?我的意思是应该有一个名为myfile.txt的文件,如果打开它,则会创建myfile.txt~~。 - matcheek