在Linux系统的日常使用中,不少用户会在工作目录下发现后缀为swp的文件,这类文件通常和vim编辑器相关,是编辑器运行过程中产生的临时交换文件。

swp文件的核心作用
swp文件全称为swap file,是vim编辑器为了防止编辑内容丢失而设计的临时存储机制。当用户使用vim打开一个文件进行编辑时,编辑器会自动在同级目录下生成一个和原文件名相同、后缀为swp的隐藏文件,实时保存当前编辑的修改内容。
如果编辑过程中遇到系统断电、vim进程意外崩溃、或者用户强制关闭终端等情况,原文件不会保存未提交的修改,但swp文件中会保留最近的编辑内容,方便后续恢复。
swp文件的生成规则
vim生成swp文件的规则如下:
- 默认情况下,编辑文件
test.txt时,会生成.test.txt.swp文件,注意文件名开头有隐藏的.符号 - 如果已经存在对应的swp文件,vim会依次尝试生成
.test.txt.swo、.test.txt.swn等后缀的文件 - 只有当用户正常执行
:wq或者:x命令保存退出时,vim才会自动删除对应的swp文件
如何处理swp文件
1. 恢复未保存的编辑内容
如果之前编辑文件时异常退出,再次用vim打开原文件时,会提示发现swap文件,此时可以选择恢复操作:
# 用vim打开原文件时的提示选项说明 # [O]pen Read-Only: 只读打开原文件,不加载swp内容 # (R)ecover: 从swp文件中恢复编辑内容 # (D)elete it: 删除swp文件,放弃恢复 # (Q)uit: 退出vim # (A)bort: 中止操作
选择R选项即可将swp文件中保存的内容恢复到当前编辑缓冲区,之后保存退出即可。
2. 删除无用的swp文件
如果确认swp文件中的内容不需要恢复,可以直接删除该文件:
# 删除指定的swp文件,注意文件名是隐藏的 rm .test.txt.swp # 批量删除当前目录下所有swp文件 rm .*.swp
3. 禁用swp文件生成
如果不需要vim生成swp文件,可以修改vim的配置文件~/.vimrc,添加如下配置:
" 禁用swap文件生成 set noswapfile
也可以在编辑文件时临时禁用,执行命令:set noswapfile即可。
注意事项
swp文件属于临时文件,不要手动修改其内容,否则可能导致恢复时内容错乱。另外如果多个用户同时编辑同一个文件,各自的vim会生成不同的swap文件,此时需要注意避免内容覆盖冲突。