##vimdiff commands and control
Commands:
]c : next difference
[c : previous difference
CTRL-W w switch windows
do diff obtain
dp diff put
zo open folded text
zc close folded text
:diffupdate re-scan the files for differences
Moving between windows:
CTRL-W h move to the window on the left
CTRL-W j move to the window below
CTRL-W k move to the window above
CTRL-W l move to the window on the right
CTRL-W t move to the TOP window
CTRL-W b move to the BOTTOM window
Moving windows:
CTRL-W K move window to the upper
CTRL-W H move window to the far left
CTRL-W J move window to the bottom
CTRL-W L move window to the far right
##vimdiff key mappings
map <Leader>1 :diffget LOCAL<CR>
map <Leader>2 :diffget BASE<CR>
map <Leader>3 :diffget REMOTE<CR>
##git mergetool
$ git config --global merge.tool=vimdiff
In the middle file (future merged file), you can navigate between conflicts with ]c
and [c
.
Choose which version you want to keep with :diffget //2
or :diffget //3
(the //2
and //3
are unique identifiers for the target/master copy and the merge/branch copy file names).
:diffupdate (to remove leftover spacing issues)
:only (once you’re done reviewing all conflicts, this shows only the middle/merged file)
:wq (save and quit)
git add .
git commit -m “Merge resolved”
If you were trying to do a git pull
when you ran into merge conflicts, type git rebase –continue
.