如何使“ git difftool --dir-diff”与vim一起使用

问题描述

我很高兴与git difftool --dir-diff一起进行无与伦比的比较,以显示目录文件间的总体差异并浏览它们。

但是,当涉及到vimdiff时,似乎它不支持git的dir diff。我创建的git别名如下

    dirdiff = difftool --ignore-submodules --tool=vimdiff --dir-diff --no-symlinks

执行git dirdiff HEAD~1 HEAD之类的操作后,它将在netrw文件浏览器中内置的vim左右列出我的2个目录。但是,在其中任何一个上按Enter键都不会使文件夹两侧都展开,更不用说打开并排差异文件

vimdiff可以很好地在可视模式下显示单个文件差异,是否有办法使其也适用于--dir-diff

解决方法

我从另一个stackoverflow thread找到了解决方案。答案由@ user744629提供。遵循他的建议

[alias]
    dirdiff = difftool --ignore-submodules --dir-diff --no-symlinks --tool=vimdirdiff

[difftool "vimdirdiff"]
    cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE

之后,您可以使用git dirdiff HEAD HEAD~1来查看并排差异。