Git vim diff能否使用耐心算法?

Git vim diff能否使用耐心算法?,git,vim,diff,Git,Vim,Diff,有没有办法将vimdiff的diff策略设置为耐心算法?它内置于git中,似乎比普通的差异要好得多 供参考: 参见:帮助区分 您可以将其设置为 set diffexpr=MyDiff() function MyDiff() let opt = "" if &diffopt =~ "iwhite" let opt = opt . "-w " endif silent execute "!git diff --no-index --patience "

有没有办法将vimdiff的diff策略设置为耐心算法?它内置于git中,似乎比普通的差异要好得多

供参考:


    • 参见
      :帮助区分

      您可以将其设置为

      set diffexpr=MyDiff()
      function MyDiff()
         let opt = ""
         if &diffopt =~ "iwhite"
           let opt = opt . "-w "
         endif
         silent execute "!git diff --no-index --patience " . opt . v:fname_in . " " . v:fname_new .  " > " . v:fname_out
      endfunction
      

      我尝试了这个方法,但是我没有让它工作,因为git输出统一的diff格式,而vim需要ed样式的格式(参见上面的文档)。您可能需要转换git diff的输出,这可能不是您想要的。

      我制作了一个插件,允许这样做。试试我的插件

      从2018年9月开始,vim附带了(git用于diff的库相同),这意味着vim和neovim现在本机支持patience diff(请参阅)。将此添加到vimrc:

      如果有(“补丁-8.1.0360”)
      设置diffopt+=内部,算法:耐心
      恩迪夫
      

      关于新的
      算法:耐心
      缩进启发式
      diff选项的详细介绍,请访问。

      这是一个很棒的想法。我真的希望我们能得到一个完整的答案。