SWP文件是一种用于备份Vim编辑器临时文件的格式。在编辑文本时,Vim会将临时文件存储为.SWP格式,通常是在产生意外中断如系统崩溃或用户误操作时保存临时文件。一旦Vim关闭,.SWP文件就没用了,因此可以安全删除。
一、查找和恢复SWP文件
Vim在运行时会在编辑的文件所在目录中创建一个隐藏的.swp文件。当编辑文本文件时,一旦遇到异常情况导致编辑器崩溃,Vim会尝试恢复该文件。例如,在编辑文本时,用户意外关闭编辑器并重新启动编辑器,Vim将会询问用户是否恢复原始文件。
$ ls -a
. .. .bar.swp bar.txt
上面的目录中,我们可以看到.SWP文件名是源文件名加上.vim的后缀,例如.bar.vim
对应源文件bar.txt
。
二、删除SWP文件
SWP文件是临时文件,所以必须删除。Vim通常会在编辑器正常关闭时自动删除这些文件,但是如果遇到编辑器崩溃或死机等异常情况,则值得手动删除。为了防止误删,请在删除文件之前先确认一下是否正确。
$ rm .bar.vim
三、设置SWP文件路径
默认情况下,.swp文件存储在活动目录中。有时,用户可能希望将临时文件存储在不同的目录中,例如在Linux网络文件共享时或用于跨平台合作的情况下。可以通过设置SWAP文件路径环境变量来设置临时文件存储位置。
$ export DIR = /usr/vim/tmp
$ vim -r foo.txt
在上面的示例中,环境变量DIR
表示.SWP文件路径的目标目录。在使用vim -r
命令时,Vim将创建一个.swp
文件存储在/usr/vim/tmp
目录中,其文件名将与源文件名相同。
四、恢复SWP文件内容
当用户的Vim编辑器意外终止并重启,会提示是否恢复之前编辑的文件,如果选择的话,这将打开Vim的恢复模式功能。
$ vim -r foo.txt
E325: ATTENTION
Found a swap file by the name ".foo.swp"
owned by: xxxx dated: Mon Jul 19 15:01:27 2021
file name: ~xxxx/foo.txt
modified: YES
user name: xxxx host name: xxxx-desktop
process ID: 2272
While opening file "foo.txt"
dated: Thu Jan 1 00:00:00 1970
NEWER than swap file!
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r foo.txt"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file ".foo.swp"
to avoid this message.
Swap file ".foo.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:
如果用户选择恢复文件,则可以在Vim中找到恢复的内容。如果选择打开并编辑,则可以在保存文件之前使用:recover
命令来检查文件是否已经被恢复了。
总结
SWP文件是一种备份Vim编辑器临时文件的格式。在Vim编辑器意外中断时,SWP文件能够帮助用户恢复丢失的内容。也可以通过手动设置SWAP文件路径环境变量的方式来更改文件存储位置。SWP文件是临时文件,在正确操作的情况下,Vim会自动删除这些文件。