2010-01-02 9 views

risposta

2

vimdiff faranno quello che vuoi. Vim è installato di default sulla maggior parte delle distro di Linux, quindi probabilmente non hai nemmeno bisogno di installare nulla.

50

Sto usando vimdiff. Oppure c'è anche sdiff.

+2

sdiff sembra carino, ma c'è qualche variazione che supporta l'output colorato? – WhyNotHugo

+3

vimdiff sembra davvero buono. – Trismegistos

+2

nota: Vim viene fornito con vimdiff già – rubo77

3

Personalmente mi piace usare vimdiff. Ma se non conosci Vim, non ti sarà d'aiuto.

+0

Non ci sono trucchi specifici per vim per usare 'vimdiff' (eccetto ricordare come uscire). Un suggerimento è che puoi specificare l'opzione' -o' per farne uso orizzontale Windows invece del verticale predefinito ('-O'.) – MarkHu

2

Emacs ha un built-in strumento diff visiva: M-x ediff.

+0

Hai letto l'intera domanda? –

+0

Sì, ma se si guarda la cronologia delle modifiche della domanda, si noterà che la parte relativa a "non Vim o Emacs" è stata eseguita ** dopo ** Ho scritto la mia risposta. :) – JesperE

+0

Peccato che non potrei fare M-x vc-diff su quello. Pace :) –

3

Il tuo titolo menziona "console Linux" ma la tua domanda menziona meld, che è un'applicazione GUI. Potrebbe aiutare i rispondenti se potessi chiarire questo.

Nelle app GUI, la combinazione è ancora più o meno lo standard. Funziona bene, è abbastanza carino e intuitivo.

Se sei veramente limitato a utilizzare la console (vale a dire solo testo) poi a parte i programmi di utilità diff integrato in editor come vim e emacs si potrebbe anche provare l'utilità della riga di comando originale diff. Trovo molto utile usare l'opzione -y per visualizzare i file affiancati, e ci sono altre opzioni che ho usato per visualizzare le differenze "unificate" e per impostare con precisione la quantità di contesto attorno alle differenze corrispondenti. Se si pipe l'output di diff in less, è possibile navigare con la massima praticità.

+0

Grazie a Cral, il problema non è legato all'utilizzo della console, preferisco l'utilizzo della modalità console :-) – leedit

17

Si può provare ColorDiff.

+8

Funziona bene ma l'output a colori si perde quando si esegue il piping con 'less'. Usa 'meno -r' per mantenere i colori. – SabreWolfy

18

Se sei a tuo agio con git, puoi anche utilizzare git diff per generare un percorso per te. Di solito ti dà bei colori, la pagina è less e in uscita il formato unified diff per impostazione predefinita. Funzionerà indipendentemente dal fatto che i file facciano parte di un repository git.

git diff -- file.a file.b 

Se file.a e file.b risiedono in un repo git e sono monitorate, avrete bisogno di fare rifornimento --no-index:

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

perché git diff contro l'indice per impostazione predefinita.

16

Nessuna delle risposte esistenti qui abbastanza bene per il mio caso d'uso, ma ho trovato cdiff, che è un bel po 'pezzo di software che fa esattamente quello che mi serve: strumento basato

Termine per visualizzare colorato, incrementale diff in uno spazio di lavoro Git/Mercurial/Svn o da stdin, con supporto affiancato e auto pager.

Ecco ciò che il fianco a modalità side assomiglia:

side by side diff output

+0

[sembra] (https://github.com/ymattw/cdiff/issues/61) è solo per l'analisi dell'uscita VCS –

+1

Gestisce la visualizzazione dei formati diff standard. Non genera il diff stesso - puoi farlo usando 'diff -u one.txt two.txt | cdiff' –

+0

Ho trovato cdiff -s -w 0 in questo caso funziona piuttosto bene. Grazie per averci segnalato su cdiff. – WeakPointer

1

ho iniziato a ricostruire xxdiff nella console (dal momento che ho del tutto passato a tmux sviluppo console) in un nuovo Pitone strumento basato su file singolo che chiamo "termdiff". Mi sono imbattuto in problemi di compatibilità di curses, quindi per ora ho messo questo su ghiaccio, ho solo bisogno di tempo per risolvere i problemi minori con il riempimento dello spazio vuoto, ma attualmente sputa un output che assomiglia a xxdiff e puoi ridurlo in meno.

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

Prova termdiff --cat o termdiff --less, funziona.

Nel frattempo sto utilizzando una configurazione ed ediff personalizzata di Emacs, ma è un po 'fiacco da avviare, mi piacerebbe comunque un programma diff dedicato all'avvio veloce nella console.

1

Midnight Commander (mc) ha funzioni diff e molto più utili. Prova:

sudo apt install mc

Problemi correlati