我发现在Windows Vim上使用Vim时会保存文件,在关闭Vim窗口时会删除.ext.swp
文件和.ext~
文件。
我假设.ext.swp
文件是会话备份,以防Vim崩溃。但.ext~
文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想将我正在处理的所有文件复制到我的主机上,没有这些重复项。 我该如何关闭或,如果有充分理由,隐藏文件?
答案 0 :(得分:214)
*.ext~
文件是一个备份文件,包含编辑之前的文件。
*.ext.swp
文件是交换文件,用作锁定文件,包含撤消/重做历史记录以及Vim需要的任何其他内部信息。如果发生崩溃,您可以重新打开文件,Vim将从交换文件中恢复其先前的状态(我觉得这很有用,所以我不会将其关闭)。
要关闭自动创建备份文件,请使用(在您的vimrc中):
set nobackup
set nowritebackup
nowritebackup
更改Vim的默认“保存”行为,即:
并使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
在windows中可能是:
C:\Program Files (x86)\vim\_vimrc
所有用户的系统范围vim配置文件。
在Windows中设置最后一个noundofile
非常重要,可以防止在编辑后创建*~
tilda文件。
我希望Vim默认包含该行。没有人喜欢丑陋的目录。
让用户首先选择是否以及如何启用高级备份/撤消文件功能。
这是Vim最讨厌的部分。
下一步可能是设置:
set noeb vb t_vb=
"
errorbells
visualbell
同时禁用vim中的哔哔声: - )
答案 6 :(得分:6)
你是正确的,vim使用.swp
文件进行锁定并作为恢复文件。
如果您不想要这些文件,请尝试将set nobackup
放入vimrc中。如果您想要整个独家新闻,或者想要更改.bak文件,请参阅the Vim docs了解各种备份相关选项。
答案 7 :(得分:4)
对我有用的唯一选择是将此行放在我的〜/ .vimrc文件中
设置noundofile
引用备份文件的其他选项并不会阻止创建以〜(代字号)结尾的临时文件
答案 8 :(得分:0)
我必须将set noundofile
添加到~_gvimrc
可以通过使用cd ~
命令