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 :-))


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.


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.


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


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 .


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


3

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


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.


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


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.


2

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


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.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.