为什么 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 做了一个快速实验,看看他是否有相同的行为。这就是将我踢向正确方向的原因。
如果我在 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 做了一个快速实验,看看他是否有相同的行为。这就是将我踢向正确方向的原因。