似乎git发生了变化,导致它不再与gvim作为差异工具正常工作。具体来说,我总是使用gvim -geometry标志来最大化窗口。现在,我最终会得到一个空白的窗口(空/零行文件)。
好的,我找到了答案。为了正确工作,gvim必须保持在前台,并且不能像通常那样分叉出一个新进程。这可以通过在启动gvim(或gvimdiff)时使用-f
或--nofork
标志来实现。
我现在设置了以下可行的别名:
alias gitdg='git difftool --noprompt --extcmd="gvim -d --nofork -geometry 220x80+2000+40" '
-geometry
配置差异窗口大小为220行x80列。"+2000+40"表示窗口的左上角相对于所有监视器的左上角水平偏移2000像素,垂直偏移80像素,因此该窗口将出现在我2个监视器设置中的右侧监视器上。尝试将其设置为-geometry 160x40+60+20
以查看更改的效果。git difftool --no-prompt --extcmd="'C:\Program Files (x86)\Vim\vim81\gvim' -d -f"
,这使我达到了我想要的目的。谢谢。 - Jim[alias]
d = difftool
[diff]
tool = gvimdiff
[difftool]
prompt = false
[difftool "gvimdiff"]
path = "C:/Program Files (x86)/Vim/vim81/gvim.exe"
样例运行...
c:\>git d index.html
"set diffexpr=MyDiff()
...这允许“新的”内置差异在gVim中起作用。通过这些更改,gui vim中的一切都可以运行。