555 votes

Coloriser diff sur la ligne de commande

Quand j’ai un diff, comment peux j’ai coloriser afin qu’il semble bon ? Je le veux pour la ligne de commande, ne veuillez donc aucune solution de GUI.

653voto

kaji Points 1171

Pages pour l’homme ne proposer aucune solution pour la colorisation au sein de lui-même. S’il vous plaît envisager d’utiliser . C’est un encapsuleur `` qui produit la même sortie comme diff, sauf qu’il augmente la sortie à l’aide de la couleur de la coloration syntaxique pour augmenter la lisibilité :

351voto

Johnsyweb Points 45395

Utiliser Vim:

Ou mieux encore, VimDiff (ou `` , qui est plus court pour taper) montrera les différences entre les deux, trois ou quatre files by-side.

Exemples :


185voto

Lars Baehren Points 151

En fait, il semble être encore une autre option (que j’ai ne remarqué que récemment, lors de l’exécution dans le problème décrit ci-dessus) :

Si vous avez Git autour (qui vous déjà utilisez quand même), alors vous serez capable de l’utiliser pour la comparaison, même si les fichiers eux-mêmes ne sont pas sous contrôle de version. Si il n’est pas activée pour vous par défaut, alors permettant l’utilisation de couleurs ici semble être beaucoup plus facile que certains des solutions mentionnées précédemment.

74voto

retracile Points 6301

Et pour ces occasions où un yum install colordiff ou apt-get install colordiff n'est pas une option en raison de certaines fou contrainte au-delà de votre contrôle immédiat, ou vous êtes juste un sentiment fou, vous pouvez ré-inventer la roue, avec une ligne de la sed:

sed 's/^-/\x1b[41m-/;s/^+/\x1b[42m+/;s/^@/\x1b[34m@/;s/$/\x1b[0m/'

Jeter que dans un script shell, et le tuyau de différences unifiées de sortie à travers elle.

Il fait beau mec marqueurs bleu et met en évidence les nouveaux/anciens noms de fichiers et des lignes ajoutées/supprimées en vert sur fond rouge, respectivement.1 Et il sera de fuite de l'espace2 changements plus évident que colordiff peut.


1 d'ailleurs, la raison pour mettre en évidence le nom du fichier de même que la modification de lignes, c'est que pour correctement différencier les noms de fichiers et les lignes modifiées nécessite correctement l'analyse de la diff format, ce qui n'est pas quelque chose à aborder avec une regex. Soulignant la même fonctionne "assez bien" visuellement et rend le problème trivial. Cela dit, il y a quelques subtilités intéressantes.

2 Mais pas de fuite onglets. Apparemment, les onglets ne pas obtenir leur fond, au moins dans mon xterm. Il ne font onglet vs espace changements se démarquer un peu.

16voto

Azd325 Points 704

Vous pouvez modifier la configuration de subversion pour utiliser colordiff

~/.subversion/config.diff

par : https://gist.github.com/westonruter/846524

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X