2010-12-29 11 views
5

Il comando diff -w viene utilizzato per creare un file di confronto confronto parallelo (anziché parallelo)
quindi li visualizzo utilizzando vi tramite il terminale ssh le modifiche sono indicate da "<" o "|" o ">"
Poiché il file che sto visualizzando è un codice sorgente, la navigazione verso le sole modifiche
utilizzando i simboli sopra è difficile poiché sono anche nel codice sorgente C.aiuto - cambia il simbolo diff "<", "|" or ">" in uno desiderato?

Come posso modificare questi simboli predefiniti in quelli desiderati?
Gentilmente aiuto. Grazie.

+0

Questo non è fuori tema. È una domanda per i programmatori sugli strumenti di programmazione –

risposta

4

Invece di visualizzare l'output di diff -w in vim, è possibile utilizzare built-in diff di vim:

vim -d file1 file2 

Questo apre vim in una spaccatura verticale con entrambi i file aperti, e diff marcature nel codice. Questo è ciò che sembra:

alt text

E funziona in un terminale troppo:

alt text

potete trovare una breve tutorial here

+0

grazie. È stato perfetto. – basilbc

2

Secondo la mia versione di diff (2.8.1 dalle diffuse GNU di FSF) -w è usato per cambiare la larghezza dell'output; Il parametro -y emette il confronto fianco a fianco. In combinazione, i due non mostrano alcun effetto ulteriore rispetto al parametro -y usato da solo, il che significa che potresti avere un alias nel tuo profilo terminale o nel profilo terminale globale che aliasà diff a diff -y.

Dico tutto questo perché tutte le opzioni per cambiare i simboli ("<", "|" e ">") sono in conflitto con l'opzione -y. Se puoi vivere senza side-by-side, hai la possibilità di altri due stili di output inclusi o di definire il tuo. I due stili di output sono -c (contesto) e -u (unificato). (. Per ulteriori informazioni su ciò che vedono il diff Wikipedia page Per ulteriori informazioni sulle opzioni vedere il diff man page.)

Una più approfondita difficoltà sarebbe quella di utilizzare le seguenti opzioni:

diff --old-group-format="(deleted)---" \ 
    --new-group-format="(added)---" \ 
    --changed-group-format="(updated)---" \ 
    --unchanged-group-format="(nodiff)---" \ 
    old_file.c new_file.c 

Ora il vecchio le linee del file che non sono presenti nel nuovo file sono rappresentati da (soppresso) ---

linee del nuovo file che non sono presenti nel vecchio file sono rappresentati da (aggiunto) ---

linee che sono stati modificati sono rappresentati da (aggiornato) ---

linee comuni a entrambi i file sono rappresentati da (nodiff) ---

Dal momento che sembrano fare questo abbastanza spesso, hai la possibilità di renderlo un alias nel tuo profilo terminale o scrivere un piccolo script di shell per gestirlo.Per ulteriori opzioni, vedere il manuale section on options e vedere in particolare lo section on line group formats per informazioni su cosa è possibile inserire tra le virgolette nelle definizioni di formato.

Naturalmente, se si deve avere uno accanto all'altro, provare l'idea di Nathan Fellman sopra. In caso contrario, è possibile utilizzare uno strumento GUI dedicato come Kompare.

+0

grazie. non ero a conoscenza dell'opzione 'y' per diff. – basilbc

Problemi correlati