当前位置:  开发笔记 > 开发工具 > 正文

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

如何解决《如何防止vim创建(和离开)临时文件?》经验,为你挑选了6个好方法。

为什么vim会创建~文件?有没有办法禁用它?

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

另外,这些..swp文件也是如此.

我怎么告诉vim不要创建那些,或者至少要自己清理?

编辑

哎呀,重复:

为什么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

user55400.. 71

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

您可以设置存储交换文件的目录,这样它们就不会混乱您的正常目录:

set swapfile
set dir=~/tmp

也可以看看

:help swap-file

@ user55400听说过GNU/Screen?(或tmux,或这个日本替代品) (8认同)

不,我并不是说vim经常崩溃(虽然我看到它崩溃了).但是对于我的工作环境,我正在处理的某些主机的网络连接非常不稳定,因此会发生编辑中断.交换文件有帮助. (7认同)

好吧,我从来不需要那些带有记事本的人,除非你说vim会经常崩溃! (3认同)

这对我来说只适用于gvim:set directory =/tmp (2认同)


Chad Birch.. 55

把它放在你的.vimrc配置文件中.

set nobackup

我们在Windows 8.1上使用Vim完成了这项工作.交换文件仍然存在. (5认同)


小智.. 31

; 对于Windows用户,请返回临时目录

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

我不得不添加set undodir = C:\ WINDOWS\Temp (4认同)


joeytwiddle.. 10

我创建了一个名为"noswapsuck"的插件,它只在缓冲区包含未保存的更改时启用交换文件.保存更改后,将清除交换文件.因此,将删除包含与磁盘上文件相同内容的交换文件.

在这里得到它: noswapsuck.vim

它一直对我有用,但我以前从未公开过,所以我欢迎反馈.

好处:

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

缺点:

如果缓冲区有交换文件,则首次打开文件时将不会检测到它.只有在swapfile启用时才会检测到它,即开始编辑缓冲区时.那已经很晚了,会打扰你. (已解决:我们现在通过暂时swapfile再次打开选项来检查打开缓冲区时预先存在的交换文件.)

如果您在要最小化磁盘写入的环境中工作(例如,低功耗,或通过网络安装的文件,或编辑大文件),那么继续删除和重新创建交换文件并不理想.保存并编辑.在这种情况下,你可以这样做:

:let g:NoSwapSuck_CloseSwapfileOnWrite = 0

这将在写入后保留交换文件,但在缓冲区失去焦点时仍会将其删除.

顺便说一下,我有另一个小插件:DiffAgainstFileOnDisk,在点击之后非常有用(r)ecover,可以检查你恢复的缓冲区是否比现有文件更新或更旧,或者与之相同.



1> user55400..:

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

您可以设置存储交换文件的目录,这样它们就不会混乱您的正常目录:

set swapfile
set dir=~/tmp

也可以看看

:help swap-file


@ user55400听说过GNU/Screen?(或tmux,或这个日本替代品)
不,我并不是说vim经常崩溃(虽然我看到它崩溃了).但是对于我的工作环境,我正在处理的某些主机的网络连接非常不稳定,因此会发生编辑中断.交换文件有帮助.
好吧,我从来不需要那些带有记事本的人,除非你说vim会经常崩溃!
这对我来说只适用于gvim:set directory =/tmp

2> Chad Birch..:

把它放在你的.vimrc配置文件中.

set nobackup


我们在Windows 8.1上使用Vim完成了这项工作.交换文件仍然存在.

3> 小智..:

; 对于Windows用户,请返回临时目录

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


我不得不添加set undodir = C:\ WINDOWS\Temp

4> joeytwiddle..:

我创建了一个名为"noswapsuck"的插件,它只在缓冲区包含未保存的更改时启用交换文件.保存更改后,将清除交换文件.因此,将删除包含与磁盘上文件相同内容的交换文件.

在这里得到它: noswapsuck.vim

它一直对我有用,但我以前从未公开过,所以我欢迎反馈.

好处:

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

缺点:

如果缓冲区有交换文件,则首次打开文件时将不会检测到它.只有在swapfile启用时才会检测到它,即开始编辑缓冲区时.那已经很晚了,会打扰你. (已解决:我们现在通过暂时swapfile再次打开选项来检查打开缓冲区时预先存在的交换文件.)

如果您在要最小化磁盘写入的环境中工作(例如,低功耗,或通过网络安装的文件,或编辑大文件),那么继续删除和重新创建交换文件并不理想.保存并编辑.在这种情况下,你可以这样做:

:let g:NoSwapSuck_CloseSwapfileOnWrite = 0

这将在写入后保留交换文件,但在缓冲区失去焦点时仍会将其删除.

顺便说一下,我有另一个小插件:DiffAgainstFileOnDisk,在点击之后非常有用(r)ecover,可以检查你恢复的缓冲区是否比现有文件更新或更旧,或者与之相同.



5> Vlad Bezden..:

在Windows上,将以下行添加到_vimrc

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



6> wlwl2..:

此答案适用于在Windows 10上使用gVim。对于其他操作系统,我不能保证同样的结果。

加:

set nobackup
set noswapfile
set noundofile

到您的_vimrc文件。

注意:这是问题的直接答案(对于Windows 10),可能不是最安全的操作(请阅读其他答案),但这是我而言最快的解决方案。

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有