我正在尝试使用 vimdiff+ dirdiff.vim在 Vim 内部区分多个文件,并使用 Git 进行版本控制。
对于 Mercurial,可以使用 mercurial extdiff扩展名。
我在网上找到的将 Vim 与 Git diff 集成的唯一方法是在单个文件上使用 vimdiff,如 this post 中所述。 .
有谁知道怎么用vimdiff+dirdiff+git吗?
最佳答案
git 1.7.11版本之前
git-diffall
是我需要的,非常感谢。借助这个page关于 git difftool 和这个 one关于从命令行运行 vim+dirdiff,我将 $HOME/.gitconfig
写为:
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE
[difftool]
prompt = false
将 git-diffall
放入我的 PATH
后,我可以将工作目录与分支 dev
进行比较:
git diffall dev
--copy-back
也是我需要的,如果我想从 Vim 持久地修改工作目录:
git diffall --copy-back dev
从 git 版本 1.7.11 开始
自版本1.7.11 ,“git difftool”学会了简化事情的“--dir-diff”选项,不再需要 git-diffall
。
.gitconfig
包含:
[diff]
tool = default-difftool
[difftool "default-difftool"]
cmd = vim -f '+next' '+execute \"DirDiff\" argv(0) argv(1)' $LOCAL $REMOTE '+syntax off'
例如工作目录与分支 dev
的差异是通过以下方式完成的:
git difftool -d dev
关于git、vimdiff 和 dirdiff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8156493/