如果我在 Vim 中编辑一个目录(比如“foo”),那么 Vim 总是会创建一个名为“foo/~”的空目录。在我的 vimrc 中,我指定了“nobackup”、“nowritebackup”和“backupdir=$TEMP/vim//”。通过 backupdir 设置,当我启用备份文件时,它们会按预期转到临时目录。
尽管如此,在 OS X 和 Windows 上,Vim 都会创建空的 '~' 目录,这当然就像在我的机器周围留下非常危险的地雷(至少在 OS X 上,其中 'rm -rf ~' 将是糟糕的一天的开始)。
我无法找到任何有关空“~”目录的具体信息,但总体上有很多关于备份的信息。
如何禁止创建空的“~”目录?
弄清楚了。在我的 vimrc 文件中,我有以下设置:
let netrw_home = "~"
Run Code Online (Sandbox Code Playgroud)
我相信我最初这样做是为了防止 netrw 用“.netrwhist”和“.netrwbook”弄乱我的主目录。问题是波浪号没有扩展到我的主目录,而是 netrw 在当前目录中创建了一个名为“~”的文字目录来存储这些状态文件。
我使用的修复方法是保留 netrw_home 变量未定义,并让它使用“runtimepath”路径列表上第一个目录的默认值。我必须将我的主目录($HOME)添加为运行时路径上的第一个目录,但到目前为止似乎工作正常。
不管出于什么原因,我无法让 ~ 或 $HOME 在 Windows 上为 netrw_home 工作,但这可能是我对一些 Vim 细节的误解。我没有时间进一步调查,而且我现在已经解决了这个问题,所以我就到此为止。
感谢上面的 Wayne Werner 做了一个快速实验,看看他是否有同样的行为。这就是把我踢向正确方向的原因。