我试图将我的 gVIM 配置集中起来。为此,我做了
mklink c:\users\me\.vimrc c:\users\me\configs\_vimrc
在我更改 VIM 中的 $MYVIMRC 之前,它一直运行良好。这会立即破坏符号链接(c:\users\me.vimrc 不再是符号链接,而是变成了普通文件)。有什么方法可以修复这种奇怪的行为吗?操作系统是 Windows Vista,已进行最新更新。gVIM 是官方网站上的 7.2 版。
答案1
Vim 是应该默认情况下正确处理此问题。(:help backupcopy)
默认情况下,在非 unix 平台上,backupcopy 设置为“自动”。它通常会在您保存时重命名文件并写入新的更改文件,但如果原始文件是链接或具有资源分支等,则应修改原始文件。
有几种可能性:
- 您的 vim 版本无法识别该文件为符号链接。
- 您已设置 backupcopy 或相关变量(breaksymlink?)来覆盖默认行为。
如果是 1,我会感到惊讶,因为你正在处理较新版本的 vim。如果你有一个空的 .vimrc,会发生这种情况吗?
答案2
尝试
mklink /J c:\users\me c:\users\me\configs
c:\users\me
这将在和之间创建一个硬链接目录连接,c:\users\me\configs
当您重写 vimrc 时,vista 将尊重该连接。
答案3
用户夏泽克 建议解决方法在相关问题的评论中我问道:在 Windows 上,指向 .vimrc 的符号链接使得文件在写入时变为只读。为什么?。我采用了他的解决方案,但$MYVIMRC
由于我同时使用 Windows 和 OSX 系统,因此使分配具有条件性:
因此,在我的 Windows~/.vimrc
文件中我有:
source /path/to/shared/vimrc
然后,在共享.vimrc
文件中我有:
if has("win32")
let $MYVIMRC='~/path/to/shared/.vimrc'
endif