所以我下载了Vim的逃犯插件,并尝试让它在我的Windows 7机器上运行。
我的git.exe
中没有%PATH%
的路径,我不想添加它,因为可能会出现问题。
我的Git安装在C:\Program Files (x86)\Git\
。我可以告诉git.exe
(g:fugitive_git_executable
)的路径。{/ p>
我尝试了几种口味:
'C:/Program Files (x86)/Git/cmd/git.exe'
'C:\Program Files (x86)\Git\cmd\git.exe'
"C:\Program Files (x86)\Git\cmd\git.exe"
"C:\\Program Files (x86)\\Git\\cmd\\git.exe"
但没有一个有用。似乎在1,2,4中,路径中的括号存在问题。由此产生的:Git status
调用是
C:\WINDOWS\system32\cmd.exe /c (C:\Program Files ^(x86^)\Git\cmd\git.exe status)
并且cmd窗口抱怨"\Git\cmd\git.exe" could not be processed
(翻译自德语)。
如何指定git.exe
的路径,以便我不必扩展$PATH
变量?
或者更一般:在Vim中使用system
命令时,如何调用位于'C:\Program Files (x86)\
下的程序?
答案 0 :(得分:2)
在你的vimrc中,添加如下内容:
if has('win32')
let $PATH .= ';' . 'C:/Program Files (x86)/Git/bin'
endif
这不会影响Vim之外%PATH%的值。
或者,为了让Fugitive像宣传的那样工作,你必须稍微补丁一下。 在s:Git()替换
call s:ExecuteInTree('!'.git.' '.cmd)
与
if has('win32')
call s:ExecuteInTree('!"'.git.' '.cmd.'"')
else
call s:ExecuteInTree('!'.git.' '.cmd)
endif
然后在vimrc中可执行文件的路径周围加上引号:
let g:fugitive_git_executable = '"C:/Program Files (x86)/Git/bin/git"'
(见correct quoting for cmd.exe for multiple arguments。)
您可能希望与维护者联系。如果这样,我会感到惊讶 问题没有出现过。
我只修改$ PATH。无论如何,有些程序需要 $ PATH才能正确设置。
(另外:@ echristopherson的解决方案非常可行,但在21世纪不得不求助于此。)
答案 1 :(得分:1)
标准目录C:\Program Files (x86)
可以缩写为C:\Progra~2
* 。这种缩短的名称是从Windows 95开始在FAT文件系统(内部限制为八个基本字符和三个扩展字符的文件名)上实际表示文件名或带有空格的文件名的长度,但它仍然支持现代版本的兼容性使用NTFS的Windows系统,至少在Program Files (x86)
文件夹等特定情况下。
C:\Program Files
同样是C:\Progra~1
。
* 在Vimscript中,反斜杠应更改为斜杠,除非它们加倍或用单引号括起来。
答案 2 :(得分:0)