Ich suche nach etwas, das ich auf einem Ubuntu-Server installieren kann und das es mir ermöglicht, den Inhalt von PHP-, Javascript-, CSS-, HTML- und anderen Nur-Text-Dateien auf präsentablere und verständlichere Weise als mit dem Standardbefehl zu vergleichen diff
.
Haben müssen
Würde gerne haben
Optimal würde ich so etwas wie die Dateivergleichsfunktion von WinMerge lieben:
für Ubuntu, aber ich verstehe, dass möglicherweise nicht alle Funktionen für eine reine Konsolen-App möglich sind.
vimdiff file1 file2
Sie können es zum Beispiel auch mit Git verwenden:
git difftool --tool=vimdiff HEAD^ HEAD
Sie möchten also ein interaktives Diff-Tool mit sehr grundlegenden Funktionen. Die offensichtliche Antwort ist Emacs (Ubuntu: emacs
), das Ediff seit etwa 20 Jahren enthält.
Öffnen Sie die beiden Dateien, die Sie vergleichen möchten, und wählen Sie im Menü „Extras → Vergleichen (Ediff) → Zwei Puffer…“. Oder wählen Sie „Extras → Vergleichen (Ediff) → Zwei Dateien…“ und geben Sie die Dateinamen ein. Sie können stattdessen den Befehl ediff-buffers
oder ediff
(Alias von ediff-files
) verwenden (drücken Sie Alt+ , geben Sie Xdann ein ediff
und drücken Sie Enter). Die Hauptbefehle im Ediff-Modus sind:
|
um zwischen der Anzeige der beiden Dateien übereinander (Standard) oder nebeneinander zu wechselnn
um zum nächsten unterschiedlichen Zeilenblock zu wechselnp
um zum vorherigen anderen Zeilenblock zu wechselnq
um den Ediff-Modus zu verlassen?
für HilfeC-x o
( Ctrl+ Xdann Kleinbuchstaben O), um zwischen den drei Puffern zu navigieren (Datei 1, Datei 2 und das Ediff-Bedienfeld).Ediff kann auch 3-Wege-Diffs durchführen, wenn Sie eine gemeinsame Vorfahrendatei haben, und kann bei Zusammenführungen helfen. Die Einträge im Menü „Extras“ sollten ausreichen, um Sie in Gang zu bringen; Einzelheiten finden Sie im Handbuch .
Emacs kann Revisionen auch automatisch aus SVN und anderen Revisionskontrollsystemen ziehen. Weitere Informationen finden Sie im Menü „Extras → Versionskontrolle“ oder im Handbuch .
Vielleicht fühlen Sie sich mit der GUI-Version von Emacs wohler. Emacs funktioniert auf allen gängigen Betriebssystemen (unter Windows verwende ich EmacsW32 ) und kann über SSH (und andere Methoden) transparent auf entfernte Dateien zugreifen. Um eine Remote-Datei über SSH zu öffnen, geben Sie /name-of-host:/path/to/file
als Dateinamen ein. Wenn Sie unter Windows PuTTY für SSH verwenden, stellen Sie sicher, dass Sie plink
installiert und auf Emacs installiert haben PATH
, und geben (setq tramp-default-method "plink")
Sie Ihre ~/.emacs
. Weitere Einzelheiten finden Sie im Tramp -Handbuch.
Wer es diff
aber etwas verständlicher und lesbarer haben möchte, für den gibt's colordiff
- im Prinzip das gleiche wie diff
, aber mit farbiger Hervorhebung.
Um einen direkten Vergleich mit diff oder colordiff zu erhalten, können Sie die -y
Option hinzufügen. Sie können auch verwenden sdiff
- es gibt einen etwas saubereren Side-by-Side-Vergleich aus als diff
mit der -y
Option (zumindest auf Fedora, auf Debian sehen sie ziemlich gleich aus, bin mir aber nicht sicher, ob das für alle gleich ist).
Es hebt Wörter hervor, die anders sind, als die ganze Zeile.
Sie können auch die Spaltenbreite des Terminals an Ihre aktuelle Breite/Spalten anpassen:
colordiff -y --width=$COLUMNS mylovelyfile1.txt mylovelyfile2.txt
Cristian Ciupitu