После большого количества исследований по выпуску mergetool с vimdiff и только 3 окнами, я пришел к этой конфигурации, которая позволяет мне выбирать, когда я хочу 3 окна или 4 окна по умолчанию:
git config --global merge.tool vimdiff
git config --global alias.mt mergetool
git config --global mergetool.merge3.cmd 'vim -d -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"'
git config --global alias.m3 'mergetool -t merge3'
СейчасВы можете запустить 3 окна, просто набрав:
git m3
И значение по умолчанию (4 окна) все равно будет работать, как и ожидалось, с:
git mt
Кроме того, вы, вероятно, хотели бы добавить эти строкидо конца вашего ~/.vimrc
или /etc/vim/vimrc
" shortcuts to vimdiff
let mapleader=','
let g:mapleader=','
if &diff
map <leader>1 :diffget LOCAL<CR>
map <leader>2 :diffget BASE<CR>
map <leader>3 :diffget REMOTE<CR>
endif
Это создаст ярлыки, такие как ,1
для захвата слева, ,3
для захвата справа (в обоих режимах), а также ,2
захватить с базы (центральное окно) в режиме 4 окон.
Это очень помогает!
Мой ~/.gitconfig
файл выглядит так:
[user]
name = Dr Beco
email = my@email
[merge]
tool = vimdiff
[mergetool "merge3"]
cmd = vim -d -c \"wincmd l\" \"$LOCAL\" \"$MERGED\" \"$REMOTE\"
[alias]
lo = log --pretty=format:\"%h %ce %cd %s\" --graph
co = checkout
ci = commit
cm = commit -a -m
st = status
br = branch
m3 = mergetool -t merge3
mt = mergetool
[diff]
tool = vimdiff
Я надеюсь, что это поможет вам (и тем, кто сюда попал).