47 votes

Comment activer la sortie colorée pour OSX diff ?

J'ai besoin de différencier deux fichiers (pas deux versions du même fichier, ils sont cependant suivis par git, mais cela n'a rien à voir) et j'aimerais avoir une sortie colorée, comment puis-je y parvenir ?

$ diff file_1 file_2

1,9d0
< <script ... >
<     // more code
< </script>

$ 

Le code ci-dessus me montre la différence entre ces fichiers, mais sans couleurs. Pour des différences plus longues, c'est difficile à lire.


Sinon, existe-t-il un moyen pour git (avec lequel j'ai une belle sortie couleur) de différencier deux différents (et non les modifications apportées à un fichier) ?

OSX (10.7.5)

53voto

Philip Kearns Points 1005

Lorsque je compare des fichiers, j'utilise presque toujours vim :

vim -d file_1 file_2

Non seulement il utilise des couleurs, mais il aligne les fichiers de manière à ce qu'il soit plus facile de voir les lignes ajoutées/supprimées.

47voto

jnovack Points 1370

Perl dispose d'une colordiff pour diff, mais je préfère grc (coloriseur générique) .

Con grc (coloriseur générique) vous pouvez écrire vos propres wrappers pour différents types de commandes ou d'entrées (si vous aimez ce genre de choses).

Ci-dessous, grc se présente contre /var/log/syslog (dans la configuration, ce fichier est réglé sur un certain schéma de couleurs), où il met en évidence les processus, les pids, les IP et les "connect".

Bien entendu, il est recommandé d'utiliser un alias pour ne pas oublier :

alias diff="/usr/bin/grc /usr/bin/diff"

grc running against syslog


Si vous avez git, vous pouvez l'utiliser, car il est très robuste. diff même d'une branche à l'autre.

git diff master:cogs/foo.txt branch:widgets/bar.txt

Vous ne devez pas utiliser git diff dans un référentiel, vous pouvez l'utiliser pour des fichiers ordinaires. enter image description here

git diff old.txt new.txt

Comme toujours, vous pouvez aliaser diff pour faciliter l'utilisation.

alias diff="git diff"

11voto

Mattias Bäcklund Points 111

Pour compléter la réponse approuvée : grc fonctionne très bien pour cela. Il est installable avec brew et colorise un certain nombre de commandes de terminal, dont diff. Donc...

brew install grc

...installe grc sur votre système. Ensuite, vous devez configurer vos alias, le caveat de brew fournit une solution. Ajoutez simplement la ligne suivante à votre .bashrc ou similaire.

source "`brew --prefix`/etc/grc.bashrc"

Cela ajoutera les alias suivants :

alias colourify="$GRC -es --colour=auto"
alias configure='colourify ./configure'
alias diff='colourify diff'
alias make='colourify make'
alias gcc='colourify gcc'
alias g++='colourify g++'
alias as='colourify as'
alias gas='colourify gas'
alias ld='colourify ld'
alias netstat='colourify netstat'
alias ping='colourify ping'
alias traceroute='colourify /usr/sbin/traceroute'
alias head='colourify head'
alias tail='colourify tail'
alias dig='colourify dig'
alias mount='colourify mount'
alias ps='colourify ps'
alias mtr='colourify mtr'
alias df='colourify df'

9voto

Colin Pickard Points 8089

Vous pouvez demander à git de diff deux fichiers différents :

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt

2voto

David Moles Points 347

Homebrew a une formule para Diffutils GNU , y compris un diff avec prise en charge de la couleur.

$ brew install diffutils

$ /usr/local/bin/diff --color -r -c foo bar

color output

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X