2016-11-24 7 views
1

Ich habe einige Einrückungsprobleme in meinem Projekt behoben und ich betrachte die Ausgabe von vimdiff für das Vorher und Nachher. Ich bemerke, dass vimdiff sehr verwirrt zu sein scheint, was die tatsächlichen Änderungen sind, eine ziemlich nutzlos Ausgabe in diesem Fall machen:Gibt es eine Möglichkeit, die Zeilenposition von vimdiff für eine Änderung anzupassen?

Vimdiff confused

Zum Beispiel scheint es zu denken, dass die erste Zeile a neu hinzugefügte Zeile:

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

In Wirklichkeit hat sich nur die Einrückung geändert. Vimdiff erkennt die Änderungen nicht ordnungsgemäß.

In einem anderen, ähnlicher Datei funktioniert das diff viel besser:

Unconfused vimdiff

Ich denke, der Unterschied ist, dass in der zweiten Datei habe ich nicht den ersten Zeilenumbruch entfernen.

Gibt es eine Möglichkeit, diese Art von Sache manuell zu beheben, so dass das Diff korrekt angezeigt wird? Ich möchte keine Datei ändern, die Änderungen sind korrekt. Aber ich möchte vimdiff sagen, dass es die falschen Zeilen miteinander vergleicht.

Ist das möglich?

+0

Die extra leere Zeile bei 5 ist wahrscheinlich der Schuldige, hier. Die Unterschiede werden Zeile für Zeile berechnet, sodass alle Zeilen von 5 bis EOF unterschiedlich sind. – romainl

Antwort

1

Das zugrunde liegende Tool diff vergleicht einzelne Zeilen, unabhängig davon, ob sich "nur" ein Einzug geändert hat oder etwas Grundlegenderes. Wie in Ihrem ersten Fall gibt es eine zusätzliche, nicht eingerückte Linie, so dass diff dies als unverändert erkennt und das ganze diff durcheinander bringt.

Wenn Sie sicherstellen möchten, dass nur Einzug geändert wurde, können Sie Änderungen in Leerzeichen ignorieren über

:set diffopt+=iwhite 

Dann sollte der Unterschied überhaupt keine Veränderungen zeigen (oder, in Ihrem ersten Beispiel nur die hinzugefügte Zeile 5).

Vielleicht gibt es auch andere diff Dienstprogramme, die diese Fälle intelligenter behandeln. Wenn Sie ein solches Tool finden, können Sie Vim über 'diffexpr' konfigurieren.

Verwandte Themen