如何关闭vim文件自动保存带有~后缀的功能。

25
在我的工作环境中,我与其他开发者分享 Vim 的配置文件(同时也有我的自定义配置)。在某些地方,当我使用 Vim 编辑文件时,会自动出现一个带有波浪线后缀的副本。请问有哪些 Vim 选项可以控制这个功能?我想关闭它,因为它会使我的目录变得杂乱无序,并影响命令行的自动补全。
谢谢。

1
可能是为什么Vim使用波浪线扩展名保存文件?的重复。 - törzsmókus
4个回答

48

如果你只想彻底关闭备份, @GregHewgill提供的:set nobackup建议是最好的选择。

然而,我经常因为Vim的备份而得救,所以我想推荐一种替代方法。我在我的 .vimrc 文件中设置了以下内容:

set backupdir-=.
set backupdir^=~/tmp,/tmp

这第一行删除了备份目录列表中的当前目录 (以避免 ~ 备份出现在您的工作目录中)。第二行告诉 Vim 尝试将备份保存到 ~/tmp,如果不可能,则保存到 /tmp。(这些路径可以根据您的特定环境进行调整;例如,在 Windows 上我使用 set backupdir^=$TEMP)。

换句话说,这将备份文件放置在视线之外(并且不会妨碍您的工作),但并没有完全关闭备份功能。


2
这个也不行,Greg Hewgill的建议也没用。我在想是否有一个在我的.vimrc之后执行的.vimrc文件。有没有一种方法可以在特定的vim会话中确定使用了哪些.vimrc文件? - Leonard
请查看 :help startup 以获取 Vim 启动时读取哪些文件的详细说明。 - speshak
在Windows上,除了使用此方法停止出现“*.un~”文件之外,您还应该在文件$VIMRUNTIME/vimrc_example.vim中注释掉三行代码“if has('persistent_undo') set undofile endif”。然后,文件将备份到临时文件夹中。 - Andrew Krizhanovsky

22

听起来你正在寻找nobackup选项:

:set nobackup

默认情况下未开启备份,因此您可能在某个配置文件中启用了它们。


2
它们似乎在Windows上默认开启。 - Cristian Ciupitu

3
在Windows系统中,我在C:\Users\my-user-name\_vimrc文件中添加了set nobackup,但似乎没有起作用。然后我又在C:\Program Files (x86)\Vim\_vimrc文件中添加了set nobackup,但还是不起作用!后来我发现C:\Program Files (x86)\Vim\_vimrc会加载$VIMRUNTIME/vimrc_example.vim中的一个示例vimrc脚本,并且该脚本包含以下代码片段:
if has("vms")
  set nobackup      " do not keep a backup file, use versions instead
else
  set backup        " keep a backup file (restore to previous version)
  if has('persistent_undo')
    set undofile    " keep an undo file (undo changes after closing)
  endif
endif

将其注释掉对我有用!因此,最终问题在于弄清楚执行这些脚本的顺序,从而覆盖您可能所做的任何操作。


1
编辑后将创建两个文件。一个带有“~”后缀的文件,另一个带有“un~”。 在_vimrc或.vimrc文件中添加以下行:
set nobackup
set noundofile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接