有没有办法调整 vimdiff 的行位置以进行更改?
Is there a way to adjust vimdiff's line position for a change?
我已经修复了项目中的一些缩进问题,我正在查看前后的 vimdiff 输出。我注意到 vimdiff 似乎对实际的变化很困惑,在这种情况下呈现出几乎无用的输出:
例如,似乎认为第一行是新添加的行:
<div class="text-xs-center p-4">
实际上,改变的只是缩进。 Vimdiff 无法正确识别更改。
在另一个类似的文件中,diff 效果更好:
我认为不同之处在于在第二个文件中我没有删除第一个换行符。
有没有办法手动修复此类问题,以便正确显示差异?我不想更改任何一个文件,更改是正确的。但我想告诉 vimdiff 它正在相互比较错误的行。
这可能吗?
底层 diff
工具比较各个行,而不管 "only" 缩进是否改变,或者更基本的东西。与您的第一种情况一样,有一个额外的未缩进行,因此 diff 将其识别为未更改,这会弄乱整个 diff。
如果您想确保只更改缩进,您可以通过
忽略空格更改
:set diffopt+=iwhite
然后,diff 应该完全没有变化(或者,在你的第一个例子中,只有添加的第 5 行)。
也许还有其他 diff 实用程序可以更智能地处理这些情况。如果你找到这样的工具,你可以配置 Vim 通过 'diffexpr'
使用它。
我已经修复了项目中的一些缩进问题,我正在查看前后的 vimdiff 输出。我注意到 vimdiff 似乎对实际的变化很困惑,在这种情况下呈现出几乎无用的输出:
例如,似乎认为第一行是新添加的行:
<div class="text-xs-center p-4">
实际上,改变的只是缩进。 Vimdiff 无法正确识别更改。
在另一个类似的文件中,diff 效果更好:
我认为不同之处在于在第二个文件中我没有删除第一个换行符。
有没有办法手动修复此类问题,以便正确显示差异?我不想更改任何一个文件,更改是正确的。但我想告诉 vimdiff 它正在相互比较错误的行。
这可能吗?
底层 diff
工具比较各个行,而不管 "only" 缩进是否改变,或者更基本的东西。与您的第一种情况一样,有一个额外的未缩进行,因此 diff 将其识别为未更改,这会弄乱整个 diff。
如果您想确保只更改缩进,您可以通过
忽略空格更改:set diffopt+=iwhite
然后,diff 应该完全没有变化(或者,在你的第一个例子中,只有添加的第 5 行)。
也许还有其他 diff 实用程序可以更智能地处理这些情况。如果你找到这样的工具,你可以配置 Vim 通过 'diffexpr'
使用它。