VIM不正常退出产生的swp文件

Posted lxydo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VIM不正常退出产生的swp文件相关的知识,希望对你有一定的参考价值。

当你非正常关闭vim编辑器时(比如直接关闭终端或者电脑断电),会生成一个.swp文件,这个文件是一个临时交换文件,用来备份缓冲区中的内容。

需要注意的是如果你并没有对文件进行修改,而只是读取文件,是不会产生.swp文件的。

意外退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样。

例如,第一次产生的交换文件名为“.file.txt.swp”;再次意外退出后,将会产生名为“.file.txt.swo”的交换文件;而第三次产生的交换文件则为“.file.txt.swn”;依此类推。

这里写图片描述

当你再次用vim打开文件是,会首先出现上述界面。

你可以使用

vim -r

来查看当前目录下的所有swp文件
这里写图片描述

你也可以使用

vim -r filename

来恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件。

然后用rm 命令删除交换文件。

如果你不想vim产生交换文件,可以使用如下命令禁止

:set noswapfile

也可以使用以下命令,设置生成交换文件:

:set swapfile

注意,以上设置仅针对当前文件生效。

根据默认设置,交换文件会每隔4000毫秒(4秒)或者200个字符保存一次。我们可以使用以下命令,修改保存交换文件的频率:

:set updatetime=23000

:set updatecount=400

注意,如果我们将updatecount的值为0,那么就将不保存交换文件。

Vim默认在当前文件所处的目录下产生交换文件,我们可以通过directory选项来更改交换文件产生的目录。例如,使用以下命令将交换文件存放在/tmp目录下:


:set directory=/tmp

注意,如果我们将交换文件存储在一个指定目录,那么当编辑不同目录下相同名称的文件时,就会产生命名冲突。我们可以将directory选项设置为一个以逗号分隔的目录列表,并将当前目录(.)设为目录列表的第一个选项,这样交换文件首先会被存放在当前目录下。

以上是关于VIM不正常退出产生的swp文件的主要内容,如果未能解决你的问题,请参考以下文章

vi/vim打开文件提示Found a swap file by the name

非正常关闭vi编辑器时会生成一个.swp文件

vim编辑器未正常关闭时解决方案

Linux学习—vim大全

Linux中非正常关闭vi编辑器产生swp文件怎么删除

ctfhub学习与题解