经过大量研究发布带有 vimdiff 和只有 3 个窗口的 mergetool,我想出了这个配置,它允许我选择何时需要 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
我希望这对您(以及到达这里的人)有所帮助。