为什么 Vim 在编辑目录时会创建一个名为“~”的空目录?

Ste*_*sch 5 vim netrw

如果我在 Vim 中编辑一个目录(比如“foo”),那么 Vim 总是会创建一个名为“foo/~”的空目录。在我的 vimrc 中,我指定了“nobackup”、“nowritebackup”和“backupdir=$TEMP/vim//”。通过 backupdir 设置,当我启用备份文件时,它们会按预期转到临时目录。

尽管如此,在 OS X 和 Windows 上,Vim 都会创建空的 '~' 目录,这当然就像在我的机器周围留下非常危险的地雷(至少在 OS X 上,其中 'rm -rf ~' 将是糟糕的一天的开始)。

我无法找到任何有关空“~”目录的具体信息,但总体上有很多关于备份的信息。

如何禁止创建空的“~”目录?

Ste*_*sch 2

弄清楚了。在我的 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 做了一个快速实验,看看他是否有同样的行为。这就是把我踢向正确方向的原因。