【问题标题】:Vimdiff strangenessVimdiff 陌生感
【发布时间】:2014-12-15 22:22:39
【问题描述】:

每次我做这样的事情时,我都会遇到奇怪的 vimdiff 问题:

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

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

difftooll 在.gitconfig 中设置为:

[diff]
    tool = gvimdiff

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

【问题讨论】:

    标签: git vim macvim vimdiff


    【解决方案1】:

    您可以将 vim 用作 git 合并工具,但您已经注意到它的默认外观非常混乱。您可以通过将 vim 包装在自定义脚本中并改用它来清理它 - 一个示例在这里 http://vim.wikia.com/wiki/A_better_Vimdiff_Git_mergetool

    但是,如果您只想直接查看差异并进行编辑,只需正常打开文件即可,即vim src/some-file.hs。 git 将用带有冲突标记的版本替换文件。您可以使用类似的方法快速找到冲突https://github.com/rhysd/conflict-marker.vim - 但我发现只需输入\>>>> 就足够快了。对于更复杂的情况,我使用 fugitive vim 插件(见下一段)

    如果你真的想使用 vim 处理单个文件上的 git 冲突,我建议安装 fugitive. 然后你就可以做到。

    :e src/some-file.hs
    :Gdiff
    

    并得到原始、左、右版本的三个缓冲区。但:Gdiff 也接受版本参数,因此您也可以比较不冲突的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 2016-08-12
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      相关资源
      最近更新 更多