我对vimdiff有一些奇怪的问题,每次我做这样的事情:
git difftool HEAD~2 -- src/some-file.hs
首先 - 它打开两个独立的窗口,一个 - 带差异,第二个 - 带文件本身。为什么以及如何解决这个问题?我不需要第二个窗口
另一个问题是 - 它永远不会使两个缓冲区的宽度相同,分隔线一直向右推,我必须手动执行C-w
+ =
以使它们的宽度相同,我该如何解决?
difftooll在.gitconfig
中设置为:
[diff]
tool = gvimdiff
我也不知道如何在SourceTree中设置它。我想使用vimdiff作为外部差异/合并
答案 0 :(得分:1)
你可以使用vim作为git merge-tool,但是你注意到它的默认外观非常混乱。您可以通过将vim包装在自定义脚本中并使用它来清理它 - 例如http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool。
但是,如果您只想直接查看差异并进行编辑,只需正常打开文件即vim src/some-file.hs
即可。 git将使用带有冲突标记的版本替换该文件。你可以使用这样的东西快速找到冲突https://github.com/rhysd/conflict-marker.vim
- 但我发现只需输入\>>>>
足够快。对于更复杂的情况,我使用了逃犯vim插件(见下一段)
如果您确实想使用vim处理单个文件上的git冲突,我建议您安装fugitive.然后就可以了。
:e src/some-file.hs
:Gdiff
使用原版,左版和右版获得三个缓冲区。但:Gdiff
也接受版本参数,因此您也可以比较非冲突文件。