当你非正常关闭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选项设置为一个以逗号分隔的目录列表,并将当前目录(.)设为目录列表的第一个选项,这样交换文件首先会被存放在当前目录下。
时间: 2024-10-11 01:15:18