当我gvim
从 MSYS 运行时,初始化期间出现问题。即,gvim
找不到 ' 中的初始化文件C:\Documents and Settings\username\vimfiles
。
【具体是gvimE117: Unknown function: pathogen#infect
在初始化的时候报错,所以从来没有找到autoload\pathogen.vim
. 这样做:scriptnames
还确认没有vimfiles\
运行任何安装文件。]
我想我已经调试出了为什么会出错。当您启动 MSYS 时,MSYS shell 会继承 windows 环境变量,但会将其中的一些更改为它的自定义值。 C:\Documents and Settings\username
是$HOME
Windows 中的值,但 MSYS 将其设置为C:/msys/user name
. 当然,Vim$HOME
用来查找正确的初始化文件。
我还注意到set shell?
已更改为类似shell=C:/msys/bin/sh
而不是shell=C:\WINDOWS\system32\cmd.exe
,但我希望这对于解决初始化问题并不重要。
我需要使用普通的 windows 环境变量运行 gvim。至少我需要能够手动覆盖一些重要的$HOME
东西,比如我指定的东西(即,我不关心我的窗口$HOME
会改变,所以使用静态值很好)。
我试图$HOME
在我的 vimrc 中手动重置,但到那时为时已晚。
$HOME
在初始化期间早期指定或作为额外的命令行参数是否有一些技巧?
或者,从不同的地方运行命令是否有一些技巧msys
?我对 shell 的工作原理几乎一无所知,但我可以设想一些额外的参数来改变您正在输入C:/msys/bin/sh
的命令(例如)的可见环境。gvim.exe
---编辑---
重新发布有效的解决方案(它实现了后来的想法):
而不是运行gvim.exe
,运行命令HOME="C:\Documents and Settings\username" gvim.exe