Answers:
您不需要原始文件即可恢复.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:
只需按R即可恢复它,然后:wq文件
编辑:请注意,.swp文件仅包含对该文件所做的更改(请参见注释)。这意味着您将需要从备份中获取文件的最新副本,然后使用vim恢复最新的更改。如果您没有该文件的备份副本,那么您真的很走运。
The original file is no longer needed for recovery.
:preserve
并将:set cpoptions=...&
.swp和.swo文件保留在目录中,并提供从任一目录中恢复的功能。使用vim -r <file>
可以在.swp和.swo之间选择。进一步的编辑将生成.swn,.swm等,这似乎是到该点之前交换的部分总和。您可以还原到喜欢的版本并进行编辑(〜= fork)或保存(〜= stash)。最终,您可以打包交换文件,守护它们的备份等。在涉及较大文件时,我可能对细节不满意-我不确定这对额外交换文件的影响如何-参见下文。
在阅读了Vegar Westerlund和Heptite的评论之后,我想知道vim在什么时候需要原始文件(或备份)从.swp文件中恢复。这是做什么的:
我打开了一个975行文件,在949行上对其进行了编辑(创建.swp
文件),并杀死了该进程,然后删除了原始文件。$ vim Original_File
问我是否要从.swp中恢复?实际上,仅恢复了前68行和后34行(从我的编辑开始的8行开始)。
然后,我使用较小的文件重复测试:从20行到200行,.swp文件包含原始内容的100%。但是在300行中,.swp仅包含前68行和后18行(在我的编辑上方两行开始)。
总结一下,很高兴知道vim总是将文件的“标头”和“底部”保存在.swp文件中。也许有一个设置来控制.swp应该包含多少行?