vim swap file already exists

编辑文件时,经常会报错:“swap file already exists”。

我们先重现这个错误,然后分析原因,最后进行解决。


重现错误

步骤1:新建文件

echo -e "111\n\n222\n\n333" > /teach1.txt

步骤2:进入插入模式

i

步骤3:编辑

将111改为aaa

步骤4:进入标准模式

Esc

步骤5:退出

:q

img

英文翻译:上一次修改内容后,没有保存文件。加!进行覆盖。


步骤6:不知道怎么操作了,于是关闭终端。

img


步骤7:打开新的连接,进行vim 操作

img


原因分析

vim修改文件内容后,没有进行保存就关闭了终端。所以不要随意关闭终端。

再次打开终端就提示问题。


当vim修改文件时,如果直接关闭终端,会保存交换文件 /.teach1.txt.swap(类似windows中的临时保存文件),供以后选择恢复到原始内容还是修改后的内容。


3 解决方法

再次通过vim编辑文件时,提示

img

Swap file "/.teach1.txt.swp" already exists!

[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:


建议选择(D),即删除交换文件,并且打开文件是修改后内容,符合我们通常需求。


或者手动删除交换文件

rm -rf /.teach1.txt.swap

4 swxx

有时经过多次swp问题的操作,会出现swp,swo,swn的交换文件。第三个字母依次倒序字母。

img

可通过rm -rf手动删除这多个文件。


5 总结

掌握正确的文本文件的编辑,不要在编辑时直接关闭终端窗口。


修改文件内容后的正常处理:

1)保存文件后退出

:w或:wq

2)撤销到原始内容后退出

Esc
uuuu…
:q