如何强制vimdiff始终逐行比较两个文件,而不标识添加或删除的行?

问题是,如果两个文件之间的差异很大,但是偶然情况下,文件中的两行匹配,vimdiff会认为这些行是相同的,并将其余的行视为已添加或删除的行,因此产生的差异完全不可用。在我的情况下,file1中的第i行始终与file2中的第i行相对应,因此vimdiff没有发现添加或删除行的业务。

以下是一个小示例,其中有两个文件,每个文件包含两个变量的值,每次三个。 Vimdiff错误地将file1 / line1与file2 / line3匹配,并认为它周围的某些行已添加或删除。差异(减色)如下所示:

              |  1 foo 8.1047  < del/new
              |  2 bar 6.2343  < del/new
1 foo 0.0000  |  3 foo 0.0000  < match
2 bar 5.3124  |  4 bar 1.4452  < wrong
3 foo 4.5621  |                < new/del
4 bar 6.3914  |                < new/del
5 foo 1.0000  |  5 foo 1.0000  < match
6 bar 6.3212  |  6 bar 7.2321  < wrong


但是,我想要的是以下内容,除了匹配的第5行,所有行都标记为错误:

1 foo 0.0000  |  1 foo 8.1047 < wrong
2 bar 5.3124  |  2 bar 6.2343 < wrong
3 foo 4.5621  |  3 foo 0.0000 < wrong
4 bar 6.3914  |  4 bar 1.4452 < wrong
5 foo 1.0000  |  5 foo 1.0000 < match
6 bar 6.3212  |  6 bar 7.2321 < wrong

最佳答案

如何使用diffchar.vim插件?它在非差异模式下逐行比较。请在2个窗口中打开2个文件,然后按F7键。默认情况下,它尝试按一行中的字符查找差异,但是您可以更改差异单位,单词或其他内容。

09-11 19:01