如何禁用Vim生成备份文件?像文件〜不生成。我应该通过修改/etc/vimrc来做到这一点吗?

我在set nobackup中添加了/etc/vimrc,但是当我查看分布式文件系统日志时,仍然生成了备份文件,但随后将其删除。

#1 楼

尝试在您的vimrc中添加以下内容:

set nobackup nowritebackup

。有关Jason Lefler答案的更新

如果需要为防止在已编辑文件旁边创建备份/撤消/交换文件,请考虑为它们设置目录:

let &directory = expand('~/.vimdata/swap//')

set backup
let &backupdir = expand('~/.vimdata/backup//')

set undofile
let &undodir = expand('~/.vimdata/undo//')

if !isdirectory(&undodir) | call mkdir(&undodir, "p") | endif
if !isdirectory(&backupdir) | call mkdir(&backupdir, "p") | endif
if !isdirectory(&directory) | call mkdir(&directory, "p") | endif



:h directory:h backupdir:h undodir设置为任意目录喜欢。请注意,在不同路径中编辑相同文件名时,需要在末尾加双斜杠//~/.vimdata/swap//)以防止冲突,例如,将在C%%Users%%username%%docs%%test.adoc~中创建类似C%%Users%%username%%docs%%awesome%%test.adoc~backupdir的文件。

然后,如果这些目录不存在,则创建它们。 .vimdata目录是我用来将所有这些文件放在一个地方的目录,您当然可以更改。

#2 楼

Maxim的答案适用于完全禁用备份,但是,如果您只是想停止混乱的工作目录而又需要备份功能,那么您也可以重新定位备份目录。

set backupdir=~/.vim/backup

我也对临时文件也这样做。

set directory=~/.vim/tmp

(这些目录可能已经存在。)

评论


欢迎来到Vi和Vim!好的第一个答案-我也希望保留这些备份。对于我的undodir,我实际上做了一个if!isdirectory(expand(&undodir))|。调用mkdir(expand(&undodir),“ p”)| endif在我的vimrc中(因此您可以通过编程方式执行此操作)

– D. Ben Knoble♦
19-10-30在15:15

哦,undodir对我来说是新手。要调查那个。我的单片vimrc文件还有更多行!

–user25466
19-10-30在15:21

我也一样 :)

– Maxim Kim
19-10-30在16:04

如果要编辑名称相同的不同目录中的文件(例如,各个项目目录中的pom.xml文件),此解决方案是否会引起问题?

– jeffB
19-10-30在16:58

取决于您的backupdir的路径。如果以双斜杠结尾,则没有问题。参见相应的帮助章节@jeffB

– Maxim Kim
19-10-30在17:07