2016-11-24 50 views
1

我在我的项目中修复了一些缩进问题,我正在查看前后的vimdiff输出。我注意到,vimdiff同时似乎是因为实际的变化是什么很困惑,使在这种情况下,几乎无用输出:有没有办法调整vimdiff的变更行位置?

Vimdiff confused

例如,它似乎认为第一行是新增行:

<div class="text-xs-center p-4"> 

实际上,所有改变的都是缩进。 Vimdiff没有正确认识到这些变化。

在另一个类似的文件中,DIFF效果要好得多:

Unconfused vimdiff

我觉得不同的是,在第二个文件我没有删除第一行。

有没有办法手动修复这种东西,以便diff显示正确?我不想更改任何一个文件,所做的更改都是正确的。但是我想告诉vimdiff它是在比较错误的线条。

这可能吗?

+0

5的多余空行很可能是罪魁祸首,在这里。差异是逐行计算的,所以从5到EOF的所有行都是不同的。 – romainl

回答

1

底层diff工具比较各条线,无论“仅”缩进是否更改,或者更基本的东西。就像在你的第一种情况下一样,还有一个额外的未缩进的行,所以差异认识到这一点是不变的,这就混淆了整个差异。

如果你想确保只有压痕得到了改变,您可以通过

:set diffopt+=iwhite 

忽略空白的变化之后,DIFF应显示以不变应万变(或者,在你的第一个例子中,只有添加的行5)。

也许还有其他的diff工具更聪明地处理这些情况。如果你找到这样的工具,你可以配置Vim通过'diffexpr'来使用它。

相关问题