Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法调整vimdiff';您的线路位置需要改变吗?_Vim_Vimdiff - Fatal编程技术网

有没有办法调整vimdiff';您的线路位置需要改变吗?

有没有办法调整vimdiff';您的线路位置需要改变吗?,vim,vimdiff,Vim,Vimdiff,我已经在我的项目中修复了一些缩进问题,我正在查看之前和之后的vimdiff输出。我注意到vimdiff似乎对实际的更改非常困惑,在本例中呈现了一个非常无用的输出: 例如,它似乎认为第一行是新添加的行: <div class="text-xs-center p-4"> 事实上,所有的变化都是压痕。Vimdiff无法正确识别这些更改 在另一个类似的文件中,diff工作得更好: 我认为不同之处在于,在第二个文件中,我没有删除第一个换行符 有没有办法手动修复这类问题,以便正确显示差

我已经在我的项目中修复了一些缩进问题,我正在查看之前和之后的vimdiff输出。我注意到vimdiff似乎对实际的更改非常困惑,在本例中呈现了一个非常无用的输出:

例如,它似乎认为第一行是新添加的行:

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

事实上,所有的变化都是压痕。Vimdiff无法正确识别这些更改

在另一个类似的文件中,diff工作得更好:

我认为不同之处在于,在第二个文件中,我没有删除第一个换行符

有没有办法手动修复这类问题,以便正确显示差异?我不想更改这两个文件,更改是正确的。但我想告诉vimdiff,它在相互比较错误的行


这是可能的吗?

底层的
diff
工具比较各行,而不管“仅”缩进是否改变,或者更基本的内容。在第一种情况下,有一个额外的未插入行,因此diff将其识别为未更改,这会弄乱整个diff

如果要确保只更改缩进,可以通过忽略空格更改

:set diffopt+=iwhite
然后,diff应该没有显示任何更改(或者,在第一个示例中,仅显示添加的第5行)


也许还有其他更智能地处理这些情况的diff实用程序。如果您找到这样的工具,您可以通过
'diffexpr'

配置Vim来使用它,这里5处的多余空行很可能是罪魁祸首。差异是逐行计算的,所以从5到EOF的所有行都是不同的。