如何防止vim创build(和离开)临时文件?

为什么vim创build<filename>~文件? 有没有办法来禁用?

如果是备份(或其他),我使用git。

另外,这些.<filename.with.path.hints>.swp文件也是如此。

我如何告诉vim不要创build这些内容,或者至less要清理它自己?

编辑

wops,重复:

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

我从那里采纳了rogeriopvl的答案 。

逐字拷贝:

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

我强烈build议继续使用交换文件(如果Vim崩溃)。

您可以设置交换文件存储的目录,所以它们不会混淆正常的目录:

 set swapfile set dir=~/tmp 

也可以看看

 :help swap-file 

把它放在你的.vimrcconfiguration文件中。

 set nobackup 

; 对于Windows用户回到临时目录

 set backup set backupdir=C:\WINDOWS\Temp set backupskip=C:\WINDOWS\Temp\* set directory=C:\WINDOWS\Temp set writebackup 

我做了一个名为“noswapsuck”的插件,只有当缓冲区包含未保存的更改时才启用交换文件。 一旦保存更改,交换文件被清除。 因此,包含与磁盘上文件相同内容的交换文件将被删除。

https://github.com/joeytwiddle/rc_files/blob/master/.vim/plugin/noswapsuck.vim

它一直在为我工作,但我从来没有公布过,所以我欢迎反馈。

优点:

  • 保留在磁盘上的唯一交换文件将是实际上与文件不同的重要的交换文件!

缺点:

  • 如果缓冲区具有交换文件,则在第一次打开文件时将不会检测到该文件。 只有在启用swapfile时才会检测到这种情况,即开始编辑缓冲区时。 这太迟了,会打断你。 第一次打开文件时(例如启用,勾选,然后禁用swapfile ),一些额外的魔术可能有可能解决这个问题。
  • 如果你想要最小化磁盘写入的环境(例如低功耗,或通过networking安装的文件),那么这不是一个好的解决scheme,因为它在每次保存/编辑时都会破坏并重新创build交换文件。 (*)
  • 出于同样的原因,在编辑大文件时,这不是一个好的插件。

(*)实际上,插件的当前默认值可以通过在写入后保持swapfile启用来避免此问题,并且以后只有在您忽略窗口或缓冲区时才将其禁用。 这样做的缺点是在崩溃之后,不必要的swap文件有时会存在磁盘上。 因此,在强大的机器上build议禁用该选项。 将来可能会再次改变这个默认值!

在Windows上添加_vimrc的以下行

 " store backup, undo, and swap files in temp directory set directory=$HOME/temp// set backupdir=$HOME/temp// set undodir=$HOME/temp// 

此答案适用于在Windows 10上使用gVim。我无法保证其他操作系统的结果相同。

加:

 set nobackup set noswapfile set noundofile 

到你的_vimrc文件。

注意:这是对于这个问题的直接回答(对于Windows 10),可能不是最安全的事情(请阅读其他答案),但这是对我来说最快的解决scheme。