2010-01-02 15 views

Odpowiedz

2

vimdiff będą robić to, co chcesz. Vim jest instalowany domyślnie w większości dystrybucji Linuksa, więc prawdopodobnie nie musisz niczego instalować.

50

Używam vimdiff. Lub jest też sdiff.

+2

Wydaje się, że sdiff jest niezły, ale czy jest jakaś jego odmiana obsługująca kolorowe wydruki? – WhyNotHugo

+3

vimdiff wyglądają naprawdę dobrze. – Trismegistos

+2

uwaga: Vim jest już z vimdiffem już – rubo77

3

Osobiście lubię używać vimdiff. Ale jeśli nie znasz vima, nie będzie to dla ciebie pomocne.

+0

Nie ma zbyt wielu sztuczek specyficznych dla vima do używania 'vimdiff' (z wyjątkiem pamiętania jak wyjść.) Jedną wskazówką jest to, że możesz określić przełącznik' -o', aby użyć poziomego okna zamiast domyślnej linii pionowej ('-O'.) – MarkHu

2

Emacs posiada wbudowany wizualny narzędzie Diff: M-x ediff.

+0

Czy przeczytałeś pełne pytanie? –

+0

Tak, ale jeśli spojrzysz na historię edycji pytania, zauważysz, że część o "nie Vimie lub Emacsie" została wykonana ** po ** Napisałem swoją odpowiedź. :) – JesperE

+0

Szkoda, że ​​nie mogłem tego zrobić na M-x vc-diff. Pokój :) –

3

Twój tytuł wymienia "konsolę Linux", ale twoje pytanie wspomina o meld, która jest aplikacją GUI. Może to pomóc osobom udzielającym odpowiedzi, jeśli możesz to wyjaśnić.

W aplikacjach GUI, połączenie jest nadal prawie standardem. Działa dobrze, jest dość ładna i intuicyjna.

Jeśli naprawdę ogranicza się do korzystania z konsoli (to tylko tekst), a następnie oprócz diff użyteczności wbudowane edytory jak vim i emacs można także wypróbować narzędzia wiersza polecenia diff oryginału. Uważam, że używanie opcji -y jest bardzo przydatne do wyświetlania plików obok siebie, a są jeszcze inne opcje, których użyłem do wyświetlenia "ujednoliconych" różnic i do precyzyjnego ustawienia kontekstu wokół dopasowanych różnic. Jeśli podłączysz wyjście diff do less, możesz przeglądać z odpowiednią wygodą.

+0

Dzięki Cral, problem nie dotyczy ograniczenia do korzystania z konsoli, wolę używanie trybu konsoli :-) – leedit

17

Możesz spróbować ColorDiff.

+8

Działa dobrze, ale wyjście kolorów jest tracone podczas przepuszczania przez 'less'. Użyj 'less -r', aby zachować kolory. – SabreWolfy

18

Jeśli masz wygodę z git, możesz również użyć git diff, aby wygenerować ścieżkę dla ciebie. Zazwyczaj da to ładne kolory, stronę do less i domyślnie wyprowadza format unified diff. Będzie działać niezależnie od tego, czy pliki są częścią repozytorium git.

git diff -- file.a file.b 

Jeśli file.a i file.b przebywania w repo git i są untracked, trzeba zrobić zapas --no-index:

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

ponieważ będzie git diff przeciwko indeksu domyślnie.

16

Żadna z istniejących odpowiedzi tutaj całkiem pasuje do mojego przypadku użycia, ale znalazłem cdiff, który jest piękny mały kawałek oprogramowania, które robi dokładnie to, czego potrzebuję: narzędzie oparte

Term aby zobaczyć kolorowe, przyrostowe diff w przestrzeni roboczej Git/Mercurial/Svn lub ze standardowego wejścia, z obsługą side-side i auto pager.

Oto co obok trybie boku wygląda następująco:

side by side diff output

+0

to [wygląda] (https://github.com/ymattw/cdiff/issues/61) służy tylko do parsowania wyjścia VCS –

+1

Obsługuje wyświetlanie standardowych formatów diff. Nie generuje samego diffa - możesz to zrobić za pomocą 'diff -u jeden.txt dwa.txt | cdiff' –

+0

Znalazłem cdiff -s -w 0 w tym przypadku działa całkiem dobrze. Dzięki za skierowanie nas na cdiff. – WeakPointer

1

zacząłem odbudowywać xxdiff w konsoli (odkąd całkowicie włączone do tmux rozwój konsoli) do nowego Python- oparte na pojedynczym pliku narzędzie nazywam "termdiff". Wpadłem na problemy z kompatybilnością klątów, więc na razie włożyłem to do lodu, potrzebuję trochę czasu, aby naprawić drobne problemy z wypełnianiem pustego miejsca, ale obecnie wypluwa ono wyjście, które wygląda tak jak xxdiff i można je poprowadzić w mniej.

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

Spróbuj termdiff --cat lub termdiff --less, to działa.

W międzyczasie używam spersonalizowanej konfiguracji Emacsa i ediffa, ale na początku jest trochę powolny, nadal chciałbym mieć dedykowany program szybkiego uruchamiania w konsoli.

1

Midnight Commander (mc) ma wbudowane funkcje różnicowe i wiele innych użytecznych funkcji. Spróbuj:

sudo apt install mc

Powiązane problemy