it-swarm.com.de

Diff zwei Registerkarten in Vim

Szenario: Ich habe Vim geöffnet und Text eingefügt. Ich öffne einen zweiten Tab mit :tabe und fügen Sie dort einen anderen Text ein.

Ziel: Ich möchte einen dritten Tab mit einer Ausgabe, die dem Schreiben beider Texte in Dateien und dem Öffnen mit vimdiff entspricht.

Das nächste, was ich finden kann, ist "den aktuellen Puffer gegen eine Datei abgleichen", aber nicht diff zwei offene, aber nicht gespeicherte Puffer.

118
dukedave

Ich schlage vor, die zweite Datei auf der gleichen Registerkarte zu öffnen, anstatt eine neue zu erstellen.

Folgendes mache ich normalerweise:

:edit file1
:diffthis
:vnew
:edit file2
:diffthis

Mit dem Befehl :vnew wird die aktuelle Ansicht vertikal geteilt, sodass Sie dort die zweite Datei öffnen können. Der Befehl :diffthis (oder kurz: :difft) Wird dann auf jede Ansicht angewendet.

185
Jan

Ich würde vorschlagen, es mit : diffthis oder : diffsplit zu versuchen

38
joeslice

Wenn Sie zwei Dateien in vertikaler Aufteilung geöffnet haben, führen Sie aus

:windo diffthis

25
A B

Der Inhalt aller Registerkarten befindet sich in den Puffern. Schauen Sie sich die Puffer an:

:buffers

Finden Sie die richtige Nummer für den Inhalt, die sich von Ihrem aktuellen Tab-Inhalt unterscheiden sollte.

Öffne den Buffer in deinem aktuellen Tab (zB Buffer Nummer 4)

:sb 4

Oder machen Sie für die vertikale Ansicht:

:vertical sb 4

Dann können Sie den Inhalt einfach mit diff

:windo diffthis

Wenn Sie die Diff-Analyse abgeschlossen haben, können Sie Folgendes eingeben:

:windo diffoff
1
snap