gpt4 book ai didi

windows - 我如何告诉 Fugitive 我在 Windows 上使用 Git 的路径?

转载 作者:可可西里 更新时间:2023-11-01 14:14:40 25 4
gpt4 key购买 nike

所以我下载了 Vim 的逃亡插件并尝试让它在我的 Windows 7 机器上运行。

我的 %PATH% 中没有 git.exe 的路径,我不想添加它,因为这样做可能会出现问题。

我的 Git 安装在 C:\Program Files (x86)\Git\。有一个 fugitive 的配置选项,我可以在其中告诉我到 git.exe (g:fugitive_git_executable) 的路径。

我试过几种口味:

  1. 'C:/Program Files (x86)/Git/cmd/git.exe'
  2. 'C:\Program Files (x86)\Git\cmd\git.exe'
  3. "C:\Program Files (x86)\Git\cmd\git.exe"
  4. "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"无法处理(翻译自德语)。

如何指定 git.exe 的路径,这样我就不必扩展我的 $PATH 变量?

或者更一般的:在 Vim 中使用 system 命令时,如何调用位于 'C:\Program Files (x86)\ 下的程序>?

最佳答案

在你的 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 世纪不得不求助于它很烦人。)

关于windows - 我如何告诉 Fugitive 我在 Windows 上使用 Git 的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25863559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com