You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I enjoy using vim as my Git merge-tool, and have done so for a while. When I run git mergetool, I'm used to a vimdiff layout like this: (diagram copied from a vim StackExchange post)
-------------------------
| LOCAL | BASE | REMOTE |
-------------------------
| MERGED |
-------------------------
However from some unknown point in time onwards (in hindsight, it was perhaps after I started using GoldenView), this four-pane layout got messed up. I instead have got a layout like this:
-------------------------
| LOCAL | BASE | REMOTE |
-------------------------
After poking around my vim setup on and off for a long time, today it finally crossed my mind to try launching vimdiff via vim -u NONE to debug things, and lo and behold, I see all four panes like I expected from the old days. I then made a guess among my plugins that perhaps GoldenView, the only plugin that does something about my splits, may have some strange interactions.
I tried disabling GoldenView for diffmode by using this unusual line in my plugin definition: (I use vim-plug)
callplug#begin('~/.vim/plugged')
" ... other plugins" Activate GoldenView unless vim is launched in diffmodeif (&diff==0)
Plug 'zhaocai/GoldenView.Vim'endif" ... other pluginscallplug#end()
I dug around to find what kind of command-line Git uses to launch vim as a difftool/mergetool, and found this via StackOverflow:
vim -d $MERGED $LOCAL $BASE $REMOTE -c wincmd J
So I created four files for testing:
echo one > one
echo two > two
echo three > three
echo four > four
And then launched vim using this command:
vim -c 'wincmd J' -d one two three four
And voila, I see four panes as I wanted:
To check that indeed GoldenView is interfering with vim diffmode somehow, I tried doing the same thing but with GoldenView activated. I changed my ~/.vimrc back to its previous state (i.e. the state in which I could not get vimdiff to show four panes):
callplug#begin('~/.vim/plugged')
" ... other plugins" Activate GoldenView unless vim is launched in diffmode"if (&diff == 0)" Debugging: Always load GoldenView, regardless of whether vim is in diffmode
Plug 'zhaocai/GoldenView.Vim'"endif" ... other pluginscallplug#end()
And behold, the layout is messed up again --- only the first three of the four panes are showing:
I didn't put in the time to make a minimal ~/.vimrc, but I think this is evidence enough that GoldenView somehow has some interactions with how vim functions as a Git mergetool. I also haven't read the GoldenView code yet, but regardless of whether anything is done in GoldenView to address this issue, hopefully my post here would be helpful to someone.
The text was updated successfully, but these errors were encountered:
I enjoy using vim as my Git merge-tool, and have done so for a while. When I run
git mergetool
, I'm used to a vimdiff layout like this: (diagram copied from a vim StackExchange post)However from some unknown point in time onwards (in hindsight, it was perhaps after I started using GoldenView), this four-pane layout got messed up. I instead have got a layout like this:
After poking around my vim setup on and off for a long time, today it finally crossed my mind to try launching vimdiff via
vim -u NONE
to debug things, and lo and behold, I see all four panes like I expected from the old days. I then made a guess among my plugins that perhaps GoldenView, the only plugin that does something about my splits, may have some strange interactions.I tried disabling GoldenView for diffmode by using this unusual line in my plugin definition: (I use vim-plug)
I dug around to find what kind of command-line Git uses to launch vim as a difftool/mergetool, and found this via StackOverflow:
So I created four files for testing:
And then launched vim using this command:
And voila, I see four panes as I wanted:
To check that indeed GoldenView is interfering with vim diffmode somehow, I tried doing the same thing but with GoldenView activated. I changed my
~/.vimrc
back to its previous state (i.e. the state in which I could not get vimdiff to show four panes):And behold, the layout is messed up again --- only the first three of the four panes are showing:
I didn't put in the time to make a minimal
~/.vimrc
, but I think this is evidence enough that GoldenView somehow has some interactions with how vim functions as a Git mergetool. I also haven't read the GoldenView code yet, but regardless of whether anything is done in GoldenView to address this issue, hopefully my post here would be helpful to someone.The text was updated successfully, but these errors were encountered: