在 Windows 上,我通常使用 Total Commander,它可以很容易地配置为完全忽略*.*~
这些*~
。但有时当我切换到 Windows 资源管理器时,我会对所有“未知”文件/.
我可以设置 Vim 以便它创建的每个备份也设置“隐藏”属性吗?
或者设置一些不错的解决方法?
我知道我可以设置 Vim 将它们放在其他目录中,但我想避免这种情况,因为IIUC,它可能会受到命名冲突的影响。
在 Windows 上,我通常使用 Total Commander,它可以很容易地配置为完全忽略*.*~
这些*~
。但有时当我切换到 Windows 资源管理器时,我会对所有“未知”文件/.
我可以设置 Vim 以便它创建的每个备份也设置“隐藏”属性吗?
或者设置一些不错的解决方法?
我知道我可以设置 Vim 将它们放在其他目录中,但我想避免这种情况,因为IIUC,它可能会受到命名冲突的影响。
如果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 备份文件的人有所帮助。
我为此编写了一个名为autohide的插件。按照 Pavan 的回答中的建议,它通过在写入后设置“隐藏”属性来工作。默认情况下,它只对交换文件、viminfo 和持久撤消文件执行此操作;let g:autohide_types='b'
您可以通过在 .vimrc 中进行配置使其仅隐藏备份文件,或者将其添加到默认列表中,而'suvb'
不是使用'b'
.
Pavan 回答中手动方法的好处包括处理其他文件类型、任意文件模式(如点文件)和一些错误处理(特别是与不允许在创建文件后立即设置属性的慢速网络共享相关)。
我有这个_gvimrc
:
set nobackup
首先不会生成任何备份文件。但是,交换文件 ( .*.swp
) 仍然在编辑期间生成(并在您关闭 Vim 时删除)。因此,如果您的计算机崩溃,您仍然可以恢复您的更改。