为什么Vim用〜扩展名保存文件?

时间:2009-03-03 17:56:45

标签: vim

我发现在Windows Vim上使用Vim时会保存文件,在关闭Vim窗口时会删除.ext.swp文件和.ext~文件。

我假设.ext.swp文件是会话备份,以防Vim崩溃。但.ext~文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想将我正在处理的所有文件复制到我的主机上,没有这些重复项。 我该如何关闭或,如果有充分理由,隐藏文件

9 个答案:

答案 0 :(得分:214)

*.ext~文件是一个备份文件,包含编辑之前的文件。

*.ext.swp文件是交换文件,用作锁定文件,包含撤消/重做历史记录以及Vim需要的任何其他内部信息。如果发生崩溃,您可以重新打开文件,Vim将从交换文件中恢复其先前的状态(我觉得这很有用,所以我不会将其关闭)。

要关闭自动创建备份文件,请使用(在您的vimrc中):

set nobackup
set nowritebackup

nowritebackup更改Vim的默认“保存”行为,即:

  1. 将缓冲区写入新文件
  2. 删除原始文件
  3. 重命名新文件
  4. 并使Vim将缓冲区写入原始文件(如果发生I / O错误,则会导致破坏它的风险)。但是你可以防止Windows桌面上的“跳跃文件”,这是我nowritebackup到位的主要原因。

答案 1 :(得分:210)

我认为更好的解决方案是将这些行放在vimrc文件中

set backupdir=~/vimtmp//,.
set directory=~/vimtmp//,.

第一行是备份文件,第二行是交换文件。最后的双斜杠确保在两个文件具有相同名称的情况下不存在冲突,请参阅注释(在编辑时此选项仅适用于交换文件,not yet for backup files)。如果前者不存在,,.允许vim使用当前目录。

您必须在主目录中创建名为vimtmp的目录才能使用此目录。另外,检查配置中是否启用了备份(如果没有,请添加set backup。)

通过这种方式,您可以获得两个世界的好处,您无需查看文件,但如果确实可以获得某些东西,您可以从vimtmp获取备份文件。不要忘记不时地清理目录。

答案 2 :(得分:23)

要关闭这些文件,只需将这些行添加到.vimrc(基于unix的操作系统上的vim配置文件):

set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files

答案 3 :(得分:12)

:set nobackup 

将关闭备份。如果您仍然需要这些备份文件但在中央文件夹中,也可以设置backupdir。这样你的工作目录就不会出现〜文件。

您可以在:备份下找到有关备份的更多信息。

答案 4 :(得分:11)

您还可以设置不同的备份扩展以及保存这些备份的位置(我更喜欢Linux上的~/.vimbackups)。我曾经使用“版本化”备份,通过:

au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'

这会设置动态备份扩展程序(ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup)。

答案 5 :(得分:7)

将此行放入vimrc

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile

中可能是:

C:\Program Files (x86)\vim\_vimrc

所有用户的系统范围vim配置文件。

在Windows中设置最后一个noundofile非常重要,可以防止在编辑后创建*~ tilda文件。

我希望Vim默认包含该行。没有人喜欢丑陋的目录。

让用户首先选择是否以及如何启用高级备份/撤消文件功能。

这是Vim最讨厌的部分。

下一步可能是设置:

set noeb vb t_vb= " errorbells visualbell

同时禁用中的哔哔声: - )

答案 6 :(得分:6)

你是正确的,vim使用.swp文件进行锁定并作为恢复文件。

如果您不想要这些文件,请尝试将set nobackup放入vimrc中。如果您想要整个独家新闻,或者想要更改.bak文件,请参阅the Vim docs了解各种备份相关选项。

答案 7 :(得分:4)

对我有用的唯一选择是将此行放在我的〜/ .vimrc文件中

设置noundofile

引用备份文件的其他选项并不会阻止创建以〜(代字号)结尾的临时文件

答案 8 :(得分:0)

我必须将set noundofile添加到~_gvimrc

可以通过使用cd ~命令

更改目录来识别“〜”目录