Как заставить vimdiff всегда сравнивать два файла построчно, не определяя добавленные или удаленные строки?
Проблема в том, что если разница между двумя файлами велика, но случайно совпадают две строки в файле, vimdiff считает, что эти строки одинаковы, и просто обрабатывает остальные как добавленные или удаленные строки, а полученный diff совершенно непригоден. В моем случае строка i в файле1 всегда соответствует строке i в файле2, поэтому 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
sdiff
, это определенно удобно для сравнения коротких файлов. - person flotzilla   schedule 05.01.2015