Die meisten Linux-Benutzer, die gerne auf dem Terminal arbeiten und Textdateien miteinander vergleichen, kennen den Befehl diff
– er ist zu diesem Thema der meistgenutzte Befehl. Ein Beispiel, um die Dateien LICENSE.txt und LICENSE-1.txt miteinander zu vergleichen:
diff LICENSE.txt LICENSE-1.txt
Die Zeilen mit Unterschieden werden angezeigt – natürlich gibt es auch noch weitere Optionen, aber mehr als vergleichen kann die Software nicht.
Nutzen Sie schon den Editor Vim, ist auch Vimdiff bereits installiert – und diese Software kann mehr als nur vergleichen. Nehmen wir wieder die beiden Dateien aus dem obigen Beispiel:
vimdiff LICENSE.txt LICENSE-1.txt
Die Software markiert nicht nur die unterschiedlichen Zeilen, sondern auch die genauen Unterschiede selbst. Sie können diesen Modus auch gleich direkt im geöffneten Editor Vim starten – nehmen wir an, Sie haben die Datei LICENSE.txt bereits geöffnet. Jetzt möchten Sie die Datei LICENSE-1.txt zum Vergleichen öffnen – Sie wechseln in den Befehlsmodus und nutzen den Befehl:
:diffsplit /Pfad/zur/LICENSE-1.txt
In diesem Fall wird das Fenster horizontal geteilt, ist Ihnen eine vertikale Teilung lieber, nutzen Sie den Befehl:
:vert diffsplit /Pfad/zur/LICENSE-1.txt
Zum Scrollen nutzen Sie wie üblich die Pfeiltasten (zeilenweise) oder die Bild-Tasten (seitenweise), Pos1 und Ende – im Standard-Modus scrollen beide Seiten immer an dieselbe Stelle. Möchten Sie dies unterbinden, nutzen Sie den Befehl:
:set scrollbind
Dies können Sie auch wieder aktivieren:
:set noscrollbind
Mit Strg+w, Strg+w wechseln Sie zwischen den beiden Dateien hin und her – wie unter Vim selbst, gibt es auch in Vimdiff den Befehlsmodus und den Bearbeitungsmodus – mit i bearbeiten Sie Dateien, mit Esc geht es zurück in den Befehlsmodus. In diesem Beispiel habe ich die Dateien jetzt so bearbeitet, dass beide gleich sind:
Befinden Sie sich gerade in einer Datei – also in einem Fenster-Teil, können Sie die Unterschiede jedoch auch gleich aus dem anderen Fenster übernehmen – im Befehlsmodus:
:diffget
Umgekehrt gelingt dies mit:
:diffput
Mit [c springen Sie zum vorigen Unterschied und mit ]c zum nächsten, ohne scrollen zu müssen.
3 Reaktionen
zum Vergleichen von Textdateien benutze ich meistens den Befehl:
diff -a Datei1.txt Datei2.txt>vergleich.txt
in der Datei vergleich.txt sehe ich Unterschiede bei > und <
Für die Mausschubser (wie meinereiner) sei noch ‚meld‘ erwähnt:
https://linux-bibel.at/index.php/2023/09/15/meld-dateien-und-verzeichnisse-vergleichen/
[…] da diese zumindest die komplette Zeile anzeigt. Haben Sie Vim installiert, können Sie auch vimdiff nutzen – hiermit können Sie die Dateien auch gleich […]