如果您只想打开已在 vim 缓冲区中打开的文件的差异,这些答案都很棒。我更喜欢使用git mergetool
并打开一个 4-way diff 视图,如下所示:
+-----------+----------------------+------------+
| | | |
| HEAD (:2) | common ancestor (:1) | merge (:3) |
| | | |
+-----------+----------------------+------------+
| working copy |
+-----------------------------------------------+
感谢这里的其他答案,我能够通过创建一个名为diff.vim
并将其放置在我的~/.vim
目录中的文件来完成这项工作:
Gsdiff :1
exe 1 . "wincmd w"
Gvdiff!
call feedkeys(winnr()."\<C-W>jgg", 'n')
然后,只需让您的 mergetool 命令执行vim -f "$MERGED" -S "$HOME/.vim/diff.vim"
。我~/.gitconfig
的有以下几点:
[mergetool "fugitive"]
cmd = vim -f "$MERGED" -S "$HOME/.vim/diff.vim"
[merge]
tool = fugitive
希望这对其他人有用。