5

在 Windows 上,我通常使用 Total Commander,它可以很容易地配置为完全忽略*.*~这些*~。但有时当我切换到 Windows 资源管理器时,我会对所有“未知”文件/.

我可以设置 Vim 以便它创建的每个备份也设置“隐藏”属性吗?

或者设置一些不错的解决方法?

我知道我可以设置 Vim 将它们放在其他目录中,但我想避免这种情况,因为IIUC,它可能会受到命名冲突的影响。

4

3 回答 3

5

如果backup设置了该选项,则vim每次我们使用:w. 并且每次,它都会创建一个即使您之前强行隐藏它也不会隐藏的文件!所以我们每次将缓冲区写入文件时都需要做一些事情。

您可以在 Windows 上执行此操作。在您的_vimrc文件(通常位于C:\Program Files (x86)\Vim)中,添加此行

autocmd BufWritePost,FileWritePost * silent ! attrib +h <afile>~

在哪里,

attrib=Windows File attribute changinf command
<afile>= Name of the file being sourced
silent= Prevent an annoying command window from popping up and asking user to press a key

这将确保备份文件在每次从缓冲区写入文件时隐藏。为什么每次?Cosvim在每次写入时都会创建一个非隐藏文件!

attrib但是每次保存文件时,您都必须忍受闪烁的黑色窗口(我们正在运行命令的命令窗口),但值得痛苦:)

在 linux/unix 系统上,您可以将其添加到您的.vimrc

autocmd BufWritePost,FileWritePost * silent ! mv <afile>~ .<afile>

希望这对所有试图找到如何隐藏 vim 备份文件的人有所帮助。

于 2012-03-28T18:58:27.130 回答
3

我为此编写了一个名为autohide的插件。按照 Pavan 的回答中的建议,它通过在写入后设置“隐藏”属性来工作。默认情况下,它只对交换文件、viminfo 和持久撤消文件执行此操作;let g:autohide_types='b'您可以通过在 .vimrc 中进行配置使其仅隐藏备份文件,或者将其添加到默认列表中,而'suvb'不是使用'b'.

Pavan 回答中手动方法的好处包括处理其他文件类型、任意文件模式(如点文件)和一些错误处理(特别是与不允许在创建文件后立即设置属性的慢速网络共享相关)。

于 2017-04-27T16:40:42.943 回答
1

我有这个_gvimrc

set nobackup

首先不会生成任何备份文件。但是,交换文件 ( .*.swp) 仍然在编辑期间生成(并在您关闭 Vim 时删除)。因此,如果您的计算机崩溃,您仍然可以恢复您的更改。

于 2012-03-28T13:54:17.713 回答