it-swarm.com.de

Änderungen mit vimdiff zusammenführen

In meinem Fall habe ich zwei Dateien file1 und file2. Mit vimdiff möchte ich die Änderungen wie folgt zusammenführen:

  1. Im ersten Unterschied platzieren Sie die Zeile von Datei1 über der Zeile von Datei2. Es bedeutet Unterschied wie Listing 2 in Datei2 und List 2 sollte sein List 2 gefolgt von Listing 2 in der zusammengeführten Datei.
  2. Groß-/Kleinschreibung in einer anderen Änderung umkehren.

Der Schnappschuss ist unten abgebildet.

enter image description here

Wie können wir das mit vimdiff erreichen?

38
doptimusprime

Mit können Sie zwischen den beiden Fenstern hin- und herschalten Ctrlww. Sie können aus einem Fenster kopieren Ctrlwwund dann in die andere einfügen. Beim Auflösen von Unterschieden ändern sich die Hervorhebungen und verschwinden.

vimdiff ist eigentlich kein Merge-Tool. Es zeigt Ihnen die Unterschiede zwischen Dateien und Sie führen die Zusammenführung manuell durch.

Schauen Sie sich das an Video .

19
David W.

Sie können die folgenden grundlegenden Befehle zum Zusammenführen verwenden:

do - Änderungen aus einem anderen Fenster in das aktuelle Fenster übernehmen.

dp - Übertragen Sie die Änderungen aus dem aktuellen Fenster in das andere Fenster.

]c - Zur nächsten Änderung springen.

[c - Zur vorherigen Änderung springen.

zo - Faltlinien öffnen.

zc - Gefaltete Linien schließen.

Ctrlww - Fenster wechseln.

:only | wq - andere Fenster schließen, schreiben und beenden.

Weitere Details finden Sie in dieser Artikel .

97
F Yaqoob

Sie können einfach zwischen den Fenstern wechseln und kopieren und einfügen, um die Unterschiede zu beheben, wie @David W. in seiner Antwort vorschlägt, aber Vim hat auch :diffput und :diffget Befehle, um dies zu vereinfachen. Mit diesen Befehlen (oder den entsprechenden Befehlen für den normalen Modus do und dp) müssen Sie nicht zwischen Fenstern wechseln, und der Bereich wird standardmäßig auf die aktuelle Änderung eingestellt.

Wenn Sie add benötigen, anstatt mit den Unterschieden des anderen Puffers zu überschreiben (was in einem klassischen Zweiwege-Diff eher ungewöhnlich ist), müssen Sie yank immer noch das Original Zeilen und put nach dem :diffget.

Nachdem Sie an einem Ort fertig sind, können Sie die ]c, [c befiehlt, zum nächsten Unterschied zu springen.

14
Ingo Karkat