Vimdiff陌生

时间:2014-12-15 22:22:39

标签: git vim macvim vimdiff

我对vimdiff有一些奇怪的问题,每次我做这样的事情:

git difftool HEAD~2 -- src/some-file.hs
  • 首先 - 它打开两个独立的窗口,一个 - 带差异,第二个 - 带文件本身。为什么以及如何解决这个问题?我不需要第二个窗口

  • 另一个问题是 - 它永远不会使两个缓冲区的宽度相同,分隔线一直向右推,我必须手动执行C-w + =以使它们的宽度相同,我该如何解决?

difftooll在.gitconfig中设置为:

[diff]
    tool = gvimdiff

我也不知道如何在SourceTree中设置它。我想使用vimdiff作为外部差异/合并

1 个答案:

答案 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也接受版本参数,因此您也可以比较非冲突文件。