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

Why does Vim create an empty directory named "~" when editing directories?

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

不过,在 OS X 和 Windows 上,Vim 都会创建空的“~”目录,这当然就像在我的机器周围散落着非常危险的地雷(至少在 OS X 上,'rm -rf ~' 将是糟糕一天的开始)。

我没能找到关于空“~”目录的任何具体信息,但一般来说有很多关于备份的信息。

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

想通了。在我的 vimrc 文件中,我有以下设置:

let netrw_home = "~"

我相信我最初这样做是为了防止 netrw 将我的主目录弄乱为“.netrwhist”和“.netrwbook”。问题是波浪号没有扩展到我的主目录,而是 netrw 在当前目录中创建了一个名为“~”的文字目录来存储这些状态文件。

我使用的修复方法是不定义 netrw_home 变量,让它使用 'runtimepath' 路径列表中第一个目录的默认值。我必须将我的主目录 ($HOME) 添加为我的运行时路径上的第一个目录,但到目前为止它似乎工作正常。

出于某种原因,我无法让 ~ 或 $HOME 在 Windows 上为 netrw_home 工作,但这可能是我对某些 Vim 细节的误解。我没有时间进一步调查,我现在已经解决了这个问题,所以我就到此为止。

感谢上面的 Wayne Werner 做了一个快速实验,看看他是否有相同的行为。这就是将我踢向正确方向的原因。