如何从 .swp 文件中恢复原始文件?

zar*_*rna 80 vim ubuntu

我尝试打开 .swp 文件vicat但它显示垃圾。

Dan*_*son 133

vim -r .swp
Run Code Online (Sandbox Code Playgroud)

这将进入恢复模式并为您提供更多信息。我想这就是你想要的。

.swX如果包含未保存文件的会话被终止/崩溃/发生其他不好的事情,则会留下 -files。在 Vim 会话中打开未保存的缓冲区时,它们也会出现。vim -r读取这些临时文件并重新创建内容。恢复后,只需像往常一样保存它,例如:w newfilename.

  • 正是我要找的。对于其他任何人,这就是您恢复 ** 尚未保存的** 文件的方式。如果文件已经存在,上述方法可以正常工作,但您无法打开没有名称的文件。 (8认同)

小智 21

您无需拥有原始文件即可恢复 .swp。只需打开文件,就好像它存在一样。vim 将寻找扩展名为 .swp 的文件并提供恢复它。

例如:

$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Run Code Online (Sandbox Code Playgroud)

只需按 R 即可恢复它并 :wq 文件

编辑:请注意,.swp 文件仅包含对文件所做的更改(请参阅注释)。这意味着您需要从备份中获取文件的最新副本,然后使用 vim 恢复最新的更改。如果您没有该文件的备份副本,那您真的很不走运。

  • 您肯定必须拥有原始文件,没有它,.swp 文件中的数据将毫无用处。参见 ":help 交换文件"。在某些情况下,它可能在没有原始文件的情况下工作,但 .swp 文件仅存储更改信息,并且在恢复期间需要一些起点来应用该信息。 (2认同)

Sat*_*yam 12

1打开交换文件.file.swpvim

2:recover将恢复您的文件


tuk*_*k0z 9

在阅读了 Vegar Westerlund 和 Heptite 的评论后,我想知道 vim 在什么时候需要原始文件(或备份)从 .swp 文件中恢复。这是做了什么:

我打开了一个 975 行的文件,在第 949 行(创建.swp文件)对其进行了编辑并终止了该进程,然后删除了原始文件。$ vim Original_File询问我是否想从 .swp 中恢复 » > 是;实际上只恢复了前 68 行和后 34 行(从我的编辑上方的 8 行开始)。

然后我用较小的文件重复测试:从 20 到 200 行,.swp 文件包含100% 的原始内容。但是在 300 行时,.swp 中只包含前 68 行和最后 18 行(从我编辑的上方 2 行开始)。

总而言之,知道 vim 总是将文件的“标题”和“底部”保存在 .swp 文件中是件好事。也许有一个设置来控制 .swp 应该包含多少行?


Ign*_*ams 7

使用 vim 打开原始文件,然后选择恢复选项。