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

我认为。ext。swp文件是一个会话备份,以防Vim崩溃。但是.ext~文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想把我正在处理的所有文件复制到我的主机上,而不需要这些副本。我该如何关闭它,或者,如果它有一个很好的理由,隐藏文件?


当前回答

对我来说,唯一可行的选择是将这一行放在~/中。vimrc文件

套noundofile

引用备份文件的其他选项不能阻止创建以~(波浪号)结尾的临时文件。

其他回答

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

* . ext。swp文件是交换文件,它作为一个锁文件,包含撤消/重做历史以及Vim需要的任何其他内部信息。在崩溃的情况下,您可以重新打开您的文件,Vim将从交换文件恢复其以前的状态(我发现这很有用,所以我没有关闭它)。

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

set nobackup
set nowritebackup

其中nowritebackup修改了Vim默认的“保存”行为,即:

将缓冲区写入新文件 删除原始文件 重命名新文件

并使Vim将缓冲区写入原始文件(导致在I/O错误的情况下破坏它的风险)。但是用它可以防止在Windows桌面上“跳转文件”,这是我没有安装writebackup的主要原因。

对我来说,唯一可行的选择是将这一行放在~/中。vimrc文件

套noundofile

引用备份文件的其他选项不能阻止创建以~(波浪号)结尾的临时文件。

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

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

这将设置一个动态备份扩展名(originalfilename - yyyymmdd - hmmss .vimbackup)。

要关闭这些文件,只需将这些行添加到.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

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

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

第一行用于备份文件,第二行用于交换文件。末尾的双斜杠确保在两个具有相同名称的文件的情况下没有冲突,参见注释(在此编辑时,此选项仅适用于交换文件,尚未适用于备份文件)。,。如果当前目录不存在,则允许vim使用当前目录。

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

通过这种方式,您可以获得两个世界的好处,您不必查看文件,但如果某些文件被futtout,您可以从vimtmp获取备份文件。别忘了时不时地把目录清理一下。