There seems to have been a change in git which makes it no longer work correctly with gvim as the diff tool. Specifically, I always used to use the gvim -geometry flag to maximize the window. Now, I end up with one of the windows blank (empty/zero line file).
OK, I found the answer. In order to work correctly, gvim must stay in the foreground and NOT fork a new process as usual. This is accomplished by using the -f
or --nofork
flag when starting gvim (or gvimdiff).
I have now setup the following alias which works:
alias gitdg='git difftool --no-prompt --extcmd="gvim -d --nofork -geometry 220x80+2000+40" '
Please be careful to note the placement of single- vs. double-quotes to keep the zsh shell happy.
I used the gvim option -geometry
to configure the diff windows to have 220 lines x 80 columns. The "+2000+40" means the upper left corner of window to be offset of 2000 pixels horizontally and 80 pixels vertically from the top-left corner of all monitors, so the window appears on the right monitor of my 2-monitor setup. Try setting it to -geometry 160x40+60+20
to see the effect of changes.