Вы можете попробовать использовать vim (vimdiff) с помощью этой команды:
git difftool --tool=vimdiff --no-prompt
Если вам это нравится, вы можете настроить git так, чтобы он всегда использовал vim в качестве инструмента difftool и merge:
git config --global diff.tool vimdiff
git config --global merge.tool vimdiff
git config --global difftool.prompt false
Как только вы используете vimdiff, ознакомьтесь с общими действиями:
]c : - next difference
[c : - previous difference
do - diff obtain
dp - diff put
zo - open folded text
zc - close folded text
:diffupdate - re-scan the files for differences
Вы получите все тонкости vim (раскраска, макросы, модальное редактирование), но вы будете в специализированном режиме vim, предназначенном для различий и слияний.