gvimdiff是msysgit的mergetool

10

我正在尝试在Windows上使用gvimdiff作为git的合并工具。 之前我使用控制台模式下的vimdiff,但现在感觉限制了Windows控制台大小的视图,所以我尝试切换到更具灵活性的设置窗口大小的gvimdiff。

但是尝试调用git mergetool时,我收到了一个对我来说不清楚的错误:

合并工具gvimdiff不可用作'gvim'

这个问题应该如何解决?

Windows环境下已经安装并通过命令行访问gvimgvimdiff命令。

我正在尝试找到引发此错误的git脚本位置,但目前还没有成功。


一个小提示:你可以通过右键点击顶部栏 -> 属性来更改 cmd 的默认大小。当你在那里时,你还可以告诉它在同一起始位置初始化每个窗口。然后一旦你点击确定,它会问你是否要将其设置为默认值或仅针对此窗口。 - Shahbaz
在这种特殊情况下,这对我没有帮助...我试图合并的代码有很大的缩进和行长度,因此我计划通过在gvimdiff中设置小但可读的字体来获得更多像素(g)。 - shytikov
1
错误发生在$(git --exec-path)\git-mergetool--lib内的get_merge_tool_path函数中。当您将gvimdiff配置为合并工具时,git会在内部将其转换为gvim命令(请参见$(git --exec-path)\mergetools\vim)。从启动git mergetool的shell中,您必须能够运行gvim。如果可以正常运行,则git mergetool也应该可以。 - Tim Henigan
@TimHenigan很抱歉,您的评论不正确,因为我可以从Cmder控制台运行gvim和vim,但是当我运行git mergetool时,我会收到相同的错误。遗憾的是,我仍然不知道原因。 - Hovis Biddle
2个回答

9
如果您启动了 Git 控制台,请确认是否可以访问命令?我怀疑它不在 Git 控制台的 PATH 中,只有 Windows 的 PATH(没有完全包含)。

1
他正在打开一个GVim窗口,而不是控制台。虽然git控制台无法获取PATH非常烦人。 - Shahbaz
@Shahbaz:实际上,git 尝试打开 gvim,而不是用户。为了测试 PATH 是否设置正确,用户必须检查是否可以从运行 git mergetool 的同一 shell 中执行 gvim - Tim Henigan
4
你说得对,Windows的PATH变量被省略了。我不知道如何将其添加到msysgit环境中,所以我只是创建了一个名为c:\Program Files (x86)\Git\bin\gvim的文件,并加入了以下内容:#!/bin/sh exec "/c/Program Files (x86)/Vim/vim73/gvim.exe" "$@"这样就可以使用了! - shytikov
是的,很高兴听到它有所帮助。 - rlegendi
1
我将这个答案和下面一个答案结合起来,创建了/usr/local/bin/gvimdiff文件。#!/bin/bash/c/PROGRA~2/Vim/vim74/gvim -d "${LOCAL}" "${REMOTE}" - Jessica Pennell

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接