.swp文件详解

SWP介绍与利用
swp文件介绍
vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件。这个文件是一个临时交换文件,用来备份缓冲区中的内容。如果原文件名是data,那么swp文件名就是.data.swp。如果文件正常退出,则此文件自动删除。需要注意的是如果你并没有对文件进行修改,而只是读取文件,是不会产生swp文件的。

swp文件产生
以下两种情况不会删除swp文件:

vim非正常退出(比如直接关闭终端或者电脑断电或者你使用了Ctrl+ZZ;vim编辑器要正常退出可以使用Shift-ZZ);这种情况下,除非手动删除swp文件(也可以在vim提示时删除),否则它会一直存在。
多个程序同时编辑一个文件;为了避免同一个文件产生两个不同的版本(vim中的原话),还是建议选择readonly为好。
非正常退出时,并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样。例如,第一次产生的交换文件名为“.data.swp”;再次意外退出后,将会产生名为“.data.swo”的交换文件;而第三次产生的交换文件则为“.data.swn”;依此类推。

当你强行关闭vim时,vim自动生成一个swp文件,当你再次用vim打开文件时,会首先出现一些提示。这里我们当然可以用R键恢复。

swp文件设置
使用以下命令来查看当前目录下的所有swp文件
vim -r

使用以下命令来恢复文件,这样上次意外退出没有保存的修改,就会覆盖文件。然后用rm 命令删除交换文件。不然每一次编辑时总是有这个提示。
vim -r filename
rm .{filename}.swp

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

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

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

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

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

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


作者:James_zjm
来源:CSDN
原文:https://blog.csdn.net/weixin_38133867/article/details/78671626
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/zyl_wjl_1413/article/details/84192406