Irgendein visueller Unterschied in der Linux-Konsole? [geschlossen]

72

Vor vielen Jahren habe ich d32 verwendet, das für DOS und Linux verfügbar war .

Ist ein Linux-Diff ohne GUI für Linux wie dieses verfügbar?

Alle anderen als Vim und Emacs (Vim und Emacs sind zu mächtig :-))

leedit
quelle
1
Vielleicht verschieben Sie dies zu softwarerecommendations.SX?
Einpoklum
Die Frage ist nah, aber ich muss hinzufügen: Wenn Sie die vimdiffOption mögen, aber ein Neovim-Benutzer sind: Verwenden Sie nvim -djeweils ( alias diff = 'nvim -d'). Bitte.
Riscie

Antworten:

65

Ich benutze vimdiff. Oder gibt es auch sdiff.

Gregory Pakosz
quelle
3
sdiff scheint nett zu sein, aber gibt es eine Variation davon, die farbige Ausgabe unterstützt?
WhyNotHugo
5
Hinweis: Vim kommt bereits mit Vimdiff
Rubo77
27

Wenn Sie damit vertraut sind git, können Sie auch git diffeinen Pfad für Sie generieren. Normalerweise erhalten Sie schöne Farben, können standardmäßig lessdas einheitliche Diff- Format anzeigen und ausgeben . Es funktioniert unabhängig davon, ob die Dateien Teil eines Git-Repositorys sind.

git diff -- file.a file.b

Wenn file.aund file.bresidieren in einem Git - Repo und sind untracked, werden Sie brauchen Versorgung zu tun --no-index:

git diff --no-index -- file.a file.b

weil sich git standardmäßig vom Index unterscheidet.

kristianlm
quelle
21

Keine der hier vorhandenen Antworten passt ganz zu meinem Anwendungsfall, aber ich habe cdiff gefunden , eine hübsche kleine Software, die genau das tut, was ich brauche:

Termbasiertes Tool zum Anzeigen farbiger, inkrementeller Unterschiede in einem Git / Mercurial / Svn-Arbeitsbereich oder von stdin mit Side-by-Side- und Auto-Pager-Unterstützung.

So sieht der Side-by-Side-Modus aus:

nebeneinander diff Ausgabe

Nick Knowlson
quelle
Es scheint, dass es nur zum Parsen der VCS-Ausgabe dient
Ciprian Tomoiagă
3
Es behandelt die Anzeige von Standard-Diff-Formaten. Es erzeugt nicht das Diff selbst - Sie können das mitdiff -u one.txt two.txt | cdiff
Nick Knowlson
Ich fand, dass cdiff -s -w 0 in diesem Fall ziemlich gut funktioniert. Vielen Dank, dass Sie uns auf cdiff hingewiesen haben.
WeakPointer
2
Es gibt auch eine "Verbesserung cdiff", die Leute nützlich finden können: github.com/jeffkaufman/icdiff
Keith Hughitt
Halleluja!!!!!
Russ
18

Sie können ColorDiff ausprobieren .

Yigit
quelle
9
Funktioniert gut, aber die Farbausgabe geht beim Durchleiten verloren less. Verwenden Sie less -r, um die Farben zu behalten.
SabreWolfy
4

VS Code hat schöne Unterschiede:

code --diff file1.ext file2.ext

Freewalker
quelle
3

Persönlich benutze ich gerne vimdiff. Aber wenn Sie vim nicht kennen, ist das für Sie nicht so hilfreich.

Jason Axelson
quelle
1
Es gibt nicht zu viele vim-spezifische Tricks vimdiff(außer sich daran zu erinnern, wie man das -o-O
Programm beendet
3

In Ihrem Titel wird "Linux-Konsole" erwähnt meld, in Ihrer Frage jedoch eine GUI-Anwendung. Es könnte den Antwortenden helfen, wenn Sie dies klären könnten.

In GUI-Apps ist Meld immer noch der Standard. Es funktioniert gut, es ist ziemlich hübsch und intuitiv.

Wenn Sie sich an mit der Konsole (dh nur Text) , dann abgesehen von den diff Utilities eingebaut in Editoren wirklich begrenzt wie vimund emacsman kann auch den Original - Befehlszeilen - Dienstprogramm versuchen diff. Ich finde es sehr nützlich, die -yOption zu verwenden, um Dateien nebeneinander anzuzeigen, und es gibt andere Optionen, die ich verwendet habe, um "einheitliche" Unterschiede anzuzeigen und die Menge des Kontexts um übereinstimmende Unterschiede genau festzulegen. Wenn Sie die Ausgabe von diff in Pipe einspeisen, lesskönnen Sie bequem surfen.

Carl Smotricz
quelle
Dank Cral ist das Problem nicht auf die Verwendung der Konsole beschränkt, ich bevorzuge die Verwendung des Konsolenmodus :-)
Leedit
3

Midnight Commander (mc) verfügt über ein integriertes Diff und viele weitere nützliche Funktionen. Versuchen:

sudo apt install mc

aaa bbb
quelle
2

vimdiff macht was du willst. Vim wird standardmäßig auf den meisten Linux-Distributionen installiert, sodass Sie wahrscheinlich nicht einmal etwas installieren müssen.

Dave Kirby
quelle
2

Emacs verfügt über ein integriertes visuelles Diff-Tool : M-x ediff.

JesperE
quelle
Hast du die ganze Frage gelesen?
Sid Sarasvati
Ja, aber wenn Sie sich den Bearbeitungsverlauf der Frage ansehen, werden Sie feststellen, dass der Teil über "nicht Vim oder Emacs" erledigt wurde, nachdem ich meine Antwort geschrieben habe. :)
JesperE
2
Schade, dass ich Mx vc-diff nicht machen konnte. Frieden :)
Sid Sarasvati
2
Kein Problem. Ich musste ein bisschen graben, um zu erkennen, warum es so schien, als hätte ich die Frage nicht gelesen. :)
JesperE
1

Ich habe begonnen, xxdiff in der Konsole (da ich vollständig auf die Entwicklung der tmux-Konsole umgestellt habe) in ein neues Python-basiertes Einzeldatei-Tool umzuwandeln, das ich "termdiff" nenne. Ich bin auf Fluchkompatibilitätsprobleme gestoßen, daher habe ich dies vorerst auf Eis gelegt. Ich brauche nur etwas Zeit, um kleinere Probleme beim Füllen des leeren Raums zu beheben, aber es spuckt derzeit eine Ausgabe aus, die genau wie xxdiff aussieht, und Sie können diese in weniger umleiten.

http://furius.ca/xxdiff/bin/termdiff

Versuchen Sie termdiff --cat oder termdiff --less, es funktioniert.

In der Zwischenzeit verwende ich eine angepasste Emacs-Konfiguration und ein angepasstes Ediff, aber der Start ist etwas träge. Ich hätte immer noch gerne ein dediziertes Diff-Programm für den schnellen Start in der Konsole.

blais
quelle