使用vi编辑器编辑文件时,经常会由于非正常退出而产生一个swp文件,以后每次进入时都会提示,非常麻烦。现将网上搜集的解决方法陈列于此:
swp文件产生原因分为:1.当你用多个程序编辑同一个文件时。
2.非常规退出时。
通常最后的少量改动无法恢复. Vim会在你连续4秒不键入内容时跟磁盘同步一次, 或者是连续键入了200个字符之后. 这可以通过´updatetime´和´updatecount´两个选项来控制. 所以系统如果在有所改动之后但Vim还没有同步时发生了宕机, 那这一部分内容就无法恢复了。
第一种情况的话,为了避免同一个文件产生两个不同的版本 (vim中的原话),还是建议选择readonly为好。
第二种情况的话,你可以 用vim -r filename恢复,然后再把swp文件删除(rm .filename.swp)。
进一步学习: swap-filej 关于交换文件的位置和命名
:preservej 手工刷新交换文件
:swapnamej 查看原文件及其交换文件的名字
´updatecount´ 连续击键多少次后做一次同步
´updatetime´ 多长时间之后做一次同步
´swapsync´ 同步交换文件时是否同时做一次磁盘同步
´directory´ 列出存放交换文件的目录
´maxmem´ 尚未写入交换文件的内容所受的内存限制
´maxmemtot´ 同上, 但是针对所有文件
* 11.1 * 基本恢复
在大多数情况下,恢复一个文件相当简单。假设你知道正在编辑的是哪个文件(并且硬盘
还能用)。可以用 "-r" 选项启动 Vim:
vim -r help.txt
Vim 会读取交换文件(用于保存你的编辑数据的文件)并且提取原文的编辑碎片。如果一
切顺利,你会看到如下文字 (当然了,文件名会不一样):
Using swap file ".help.txt.swp"
Original file "~/vim/runtime/doc/help.txt"
Recovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
Delete the .swp file afterwards.
(译者注:中文情况下是:
使用交换文件 ".help.txt.swp"
原文件 "~/vim/runtime/doc/help.txt"
恢复完成. 请确定一切正常.
(你可能想要把这个文件另存为别的文件名,
再执行 diff 与原文件比较以检查是否有改变)
之后可以删除交换文件。
)
为了安全起见,可以用另一个文件名保存这个文件:
:write help.txt.recovered
可以把这个文件与原文件作一下比较,看看恢复的效果如何。这方面 Vimdiff 可以帮很大
的忙