Diff-Tool für Linux, in das Sie zwei Texte ohne Dateien einfügen können?

Ich muss häufig zwei Textblöcke miteinander vergleichen, ohne zuerst eine Datei für jeden zu erstellen, und möchte dann einen Vergleich zwischen den beiden ausführen.

Gibt es ein Tool, mit dem ich einfach beides kopieren und in leere Puffer einfügen und dann einen Unterschied zwischen den beiden erhalten kann?

Antworten (3)

Meld ( Wikipedia-Artikel ) erlaubt dies.

Wenn Sie eine neue Diff-Registerkarte öffnen ( Ctrl+ n), werden Sie in einem Popup aufgefordert, zwei (oder drei) Dateien auszuwählen. Sie können OKhier einfach klicken, ohne etwas auszuwählen.

Es öffnet leere Puffer, genau wie in einem Texteditor, mit dem Sie Text einfügen (oder eingeben) können. Der Unterschied geschieht spontan (während Sie den Text einfügen/eingeben/bearbeiten).

Wenn Sie den Diff-Tab schließen, fragt das Tool, ob Sie die Dateien speichern möchten.

Screenshot von http://meldmerge.org/features.html :

GUI von Meld, die einen Unterschied von zwei Dateien zeigt, verschiedene Teile in Rot mit blauem Hintergrund und neue Zeilen mit grünem Hintergrund hervorhebt

Ich mag meld. Es hat auch den Vorteil, dass es plattformübergreifend ist (ich verwende es für meine Windows-Entwicklung). Sie können den Dateivergleich auswählen und dann auf „Leervergleich“ klicken, um das gleiche Ergebnis zu erhalten, wenn Sie keinen bestehenden Diff im Gange haben
Ich musste STRG + N drücken, gefolgt von einem Klick auf die File ComparisonSchaltfläche, und dann klickte ich auf Blank comparisonund dann war das der Trick.

Eine andere Option ist diffus: http://diffuse.sourceforge.net/index.html

Es öffnet sich standardmäßig zu zwei leeren Fenstern, und Sie können auf jeder Seite einfügen, was Sie möchten.

Beispiel Zweischeibendiff

Nicht unbedingt das Schönste, aber Sie könnten es mit Prozesssubstitution und Heredocs tun:

diff <(cat <<EOF1
First text
and more
EOF1) <(cat <<EOF2
Second text
and more
EOF2)

würde die Ausgabe erzeugen:

1c1
< First text
---
> Second text

und Sie können natürlich in jeden Textblock einfügen, was Sie möchten.

Eine andere Option wäre die Verwendung von vimas in den Antworten hier

Der Prozess, den ich mit diesem möchte, wäre, Folgendes innerhalb von zu tun vim:

  • fügt Text in den aktuellen Puffer ein
  • ausführen :diffthis, um dieses Fenster in die einzuschließendiff
  • ausführen :vnew, um ein weiteres Fenster vertikal zu teilen, sodass sie nebeneinander liegen
  • Text aus zweiter Quelle einfügen
  • Lauf:diffthis

Presto, Sie haben Ihr hervorgehobenes Diff