Ich versuche zu verstehen, wie vimdiff arbeiten.Der Weg zur Verbesserung vimdiff Ähnlichkeitssuche Mechanismus
Hier habe ich versucht, zwei einfache Dateien zu vergleichen. Die erste:
abcdefghijklmnopqrstuvwxyz
foo
abcdefghijklmnopqrstuvwxyz iii
bar
Die zweite:
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
Hier ist Ergebnis von DiffMerge Dienstprogramm:
Und hier ist das Ergebnis von vim:
Beachten Sie, dass vim die Ähnlichkeit zwischen den Zeilen abc...xyz
und abc...xyz iii
nicht erkennt und sie nicht visuell in einer Zeile anordnet.
Gibt es einige Einstellungen, um vimdiff in solchen Fällen zu verbessern?
'vimdiff' ruft nur das externe Dienstprogramm' diff' auf und parst das (was diese Art von Änderungen nicht sieht). 'diffmerge' verwendet offensichtlich einen fortgeschritteneren Algorithmus. – Carpetsmoker
Okay. Ich glaube, es könnte eine akzeptierte Antwort sein ...) – jsv
Ich weiß nicht, wie Vim die Daten analysiert, und Sie können vielleicht die 'diffexpr'-Einstellung verwenden, um dies in Vim zu erreichen (siehe ': h diff-diffexpr ') ... Es ist also vielleicht nicht völlig unmöglich, das in Vim zu machen, aber es wird sicherlich mehr Arbeit sein, als nur eine Einstellung zu setzen ... – Carpetsmoker