不使用undo命令从.un~文件恢复vim文件
如何从不使用undo命令从.un~文件恢复vim文件,vim,Vim,如何从undo文件恢复vim文件而不点击undo 我在添加文本时保存了一个vim文件。然后我运行了一个python命令清空文件的内容,我可以看到文件的.un~文件中包含的一些单词。当我试图在文件中撤消时,它会显示已在进行最新更改。在我的交换文件目录中找不到交换文件。您不能。撤销信息链接到Vim对文件内容的最后了解;当它们不再对应时,Vim无法重新应用更改。这记录在:help undo persistence: Vim将检测撤销文件是否不再与原来的文件同步 为(使用文件内容的散列)编写,并在创建文
undo
文件恢复vim文件而不点击undo
我在添加文本时保存了一个vim文件。然后我运行了一个python命令清空文件的内容,我可以看到文件的
.un~
文件中包含的一些单词。当我试图在文件中撤消时,它会显示已在进行最新更改
。在我的交换文件目录中找不到交换文件。您不能。撤销信息链接到Vim对文件内容的最后了解;当它们不再对应时,Vim无法重新应用更改。这记录在:help undo persistence
:
Vim将检测撤销文件是否不再与原来的文件同步
为(使用文件内容的散列)编写,并在创建文件时忽略它
在写入撤消文件后更改,以防止损坏
您最好尝试手动修复撤消文件中的可识别位,例如使用十六进制编辑器或Vim的二进制模式。这完全不可能,因为撤消文件只包含在一次更改中更改的文本。如果您在某个时候重新加载了文件,undo文件应该包含完整的缓冲区,从那里开始,理论上可以恢复文件(通过经历undo状态) 我以前在vim_use mailinglist和
您可以尝试修补vim,看看是否可以恢复至少一些数据。如果您在.vimrc文件中设置了
set backupdir=$HOME/tmp
您可能有可读且可以重命名的临时文件副本,正如其他答案所指出的,您无法从vim的撤销文件中恢复整个文件,因为vim似乎只在撤销文件中保留差异,而不是全部内容。(这很有道理,因为它节省空间。) 不过,您可以尝试从撤消文件中提取可能的内容:
$ strings <undo-file>
$strings
输出将不美观,但最终可能会找到对您有价值的内容。您无法找到swp文件,因为您已退出vim。
set bk?
和set wb?
两个命令的输出是什么?问号?
是命令的一部分。我正在尝试获取您的备份设置,以查看是否有可能从vim备份文件还原该文件。我设法在撤消文件上修复了一些正在运行的字符串。更新版本的修补程序:,谢谢!你刚刚救了我一天:)