我发现在Windows上使用Vim时,Vim会保存文件,.ext.swp
关闭Vim窗口时会删除该.ext~
文件和一个文件。
我假设该.ext.swp
文件是会话备份,以防Vim崩溃。该.ext~
文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想将正在处理的所有文件复制到主机上,而无需这些重复项。如何关闭此功能,或者,如果有充分的理由,请隐藏文件?
我发现在Windows上使用Vim时,Vim会保存文件,.ext.swp
关闭Vim窗口时会删除该.ext~
文件和一个文件。
我假设该.ext.swp
文件是会话备份,以防Vim崩溃。该.ext~
文件的目的是什么?这是永久备份文件吗?这很烦人,因为我想将正在处理的所有文件复制到主机上,而无需这些重复项。如何关闭此功能,或者,如果有充分的理由,请隐藏文件?
Answers:
该*.ext~
文件是备份文件,其中包含编辑前的文件。
该*.ext.swp
文件是交换文件,它用作锁定文件,包含撤消/重做历史记录以及Vim需要的任何其他内部信息。万一发生崩溃,您可以重新打开文件,Vim将从交换文件中恢复其先前状态(我认为这很有用,因此请不要将其关闭)。
要关闭自动创建备份文件的功能,请使用(在vimrc中):
set nobackup
set nowritebackup
其中nowritebackup
更改了Vim的默认“保存”行为,即:
并使Vim将缓冲区写入原始文件(导致在I / O错误的情况下有破坏缓冲区的风险)。但是您可以使用它来防止Windows桌面上的“跳转文件”,这是我安装该文件的主要原因nowritebackup
。
you prevent "jumping files" on the Windows desktop
。搜索并找到了答案
nobackup
和nowritebackup
吗?有没有一种方法可以将文件的副本作为备份写入,但是无法执行此写入/删除/重命名操作?
backup
(而不是nobackup
),则Vim将创建一个备份(*.ext~
文件)。这与完全无关nowritebackup
。
help backup-table
。结果既nobackup
没有设置,也没有设置nowritebackup
,但是设置backupcopy=yes
也解决了“跳跃”问题。这可能会伤害PERF,虽然如此,每一个自己
set backupdir=~/.vim/backup
Windows上.vimrc或_vimrc中的目录
我认为更好的解决方案是将这些行放在vimrc文件中
set backupdir=~/vimtmp//,.
set directory=~/vimtmp//,.
第一行用于备份文件,第二行用于交换文件。最后的双斜杠确保在两个文件具有相同名称的情况下不会发生冲突,请参见注释(在进行此编辑时,仅对交换文件支持此选项,而对备份文件不支持)。将,.
允许vim
使用当前目录,如果前者不存在。
您必须在主目录中创建一个名为vimtmp的目录,此功能才能起作用。另外,请检查配置中是否启用了备份(set backup
如果未启用,请添加)。
这样一来,您既可以受益于这两个世界,又不必查看文件,但是如果确实有些麻烦,则可以从vimtmp获取备份文件。不要忘记不时地清理目录。
您还可以设置其他备份扩展名以及将这些备份保存到何处(我更喜欢~/.vimbackups
在Linux上)。我以前通过以下方式使用“版本化”备份:
au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'
这将设置一个动态备份扩展名(ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup
)。
set backupdir=~/.vimbackups
〜/ .vimrc
:help backupext
将此行放入您的vimrc
:
set nobk nowb noswf noudf
"
nobackup
nowritebackup
noswapfile
noundofile
在 视窗 那将是:
C:\Program Files (x86)\vim\_vimrc
所有用户的全系统vim配置文件。
noundofile
在Windows中设置最后一个很重要,这样可以防止*~
在编辑后创建tilda文件。
我希望Vim默认包含该行。没有人喜欢丑陋的目录。
让用户选择是否以及如何先启用高级备份/撤消文件功能。
这是Vim最烦人的部分。
下一步可能是设置:
set noeb vb t_vb=
"
errorbells
visualbell
禁用蜂鸣 vim 以及:-)
.ext.swp
。