我正在尝试配置本机 Windows Vim/gVim 和 Cygwin Vim/gVim,使它们可以很好地协同运行。为此,我创建了符号链接~/.vimrc
和C:\Users\<myusername>\_vimrc
,它们都指向一个vimrc
包含我实际共享 Vim 配置的公共文件。(我对另一个由我的提供的配置文件做了类似的技巧vimrc
。)(请注意,$HOME
是C:\Users\<myusername>
,因此上述链接位于同一目录中;我只是想强调一个由 Cygwin 使用,而另一个由 Windows 本机 Vim 使用。)该.vimrc
文件是ln -s
在 Cygwin 中使用创建的,而该_vimrc
文件是使用mklink
Windows 命令创建的。
在我移动链接指向的实际文件的位置之前,这一直很正常vimrc
。我忠实地更正了 Cygwin 和 Windows 符号链接;现在 Cygwin gVim 可以正确找到 rc 文件,但 Windows 给出了以下错误:
首先,会弹出一个命令提示符窗口,显示以下消息:
C:\windows\system32\cmd.exe /c <symlink> ■p
The system cannot find the file specified.
shell returned 1
Hit any key to close this window...
当我按下一个键时,该窗口关闭,并出现一个小型 gVim 弹出窗口,其中包含以下消息,我认为这是导致问题的 Vim 命令:
:!<symlink><ff><fe>p
当我关闭此窗口时,gVim 正确启动,使用我的 vimrc 文件中的正确设置最后一部分让我有些困惑,因为我认为这意味着_vimrc
符号链接实际上配置正确——但如果是这样的话,为什么我仍然收到错误?
现在,有一些注意事项:
- 当我第一次移动
vimrc
文件时,我对 Windows 符号链接的“更正”是使其指向 Cygwin 符号链接。显示的错误消息相同,但当 gVim 最终启动时,它确实不是从文件加载配置vimrc
。 - 我尝试完全删除 Windows 符号链接;我还尝试卸载并重新安装原生 gVim。这些都无法改变行为。
- 我看到还有其他几个关于使用类似设置的问题,但我没有看到任何描述与我的问题非常相似的问题。
答案1
好吧,这是我见过的最愚蠢的修复方法。从命令行启动 gVim 并手动指定-u C:\Users\<myusername>\_vimrc
不仅可以防止错误消息弹出,而且显然还修复了我的设置,因此无论我如何启动 Vim,我都不会再看到问题中描述的错误消息。
答案2
这是一个旧帖子,但发布以防万一有帮助:
可能与上面被否决的帖子有关,我在 Windows 10 中遇到了类似的问题,通过确保 Windows%HOME%
环境变量指向包含_vimrc
文件的文件夹解决了该问题。
我在这里记录了我的尝试、艰辛以及解决方案:https://vi.stackexchange.com/questions/20076/windows-context-menu-open-with-vim-symlink-error/20098#20098。
现在可以从 cmd shell 或通过 ExplorerEdit with Vim
上下文菜单启动 gvim.exe。
答案3
我以前也遇到过同样的问题。使用快速环境编辑器我发现在 Windows 环境下HOME
设置了一个变量:c:/cygwin/home/%user%
从 Windows 环境中删除此变量后,gvim 运行时不再出现问题。