【转】 vim swp交换文件的处理

原文连接:http://blog.csdn.net/pwiling/article/details/51830781



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

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

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

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

这里写图片描述

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

你可以使用

vim -r
  • 1
  • 1

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

你也可以使用

vim -r filename
  • 1
  • 1

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

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

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

:set noswapfile

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

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

:set swapfile

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

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

:set updatetime=23000

:set updatecount=400
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

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

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


:set directory=/tmp
  • 1
  • 2
  • 1
  • 2

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章