115 votes

Mettre en évidence les lignes modifiées et les octets modifiés dans chaque ligne modifiée

Projet Open Source Trac a un excellent surligneur de différences - il met en évidence les lignes modifiées et des octets modifiés dans chaque ligne modifiée ! Voir aquí ou aquí par exemple.

Est-il possible d'utiliser la même couleur de mise en évidence (c'est-à-dire les lignes modifiées) ? et a également modifié les octets ) dans le terminal bash, git ou vim pour la sortie du diff (fichier patch) ?

1voto

Zorglub29 Points 970

Note : il s'agit d'un duplicata de ce que l'on trouve ici : Comment améliorer la mise en évidence des différences dans git ? . Je poste ma réponse ici aussi, car elle peut être utile à certaines personnes qui trouvent directement ce fil :)

Comme indiqué dans les réponses précédentes, c'est possible avec seulement des outils git. Je poste ceci car les instructions peuvent être un peu plus faciles à suivre en fonction de votre système, mais c'est similaire à plusieurs autres réponses.

Une solution qui s'appuie uniquement sur git et ses contributeurs. Elle ne nécessite aucun fichier supplémentaire que ceux fournis avec git . Toutes les explications sont pour Ubuntu (testé sur 18.04LTS), elles devraient fonctionner de la même manière sur d'autres systèmes linux :

  • Localisez le snippet git diff-highlight contrib :

    find -L /usr -name diff-highlight -type f

sur mon système, la seule réponse valable est :

/usr/share/doc/git/contrib/diff-highlight/diff-highlight
  • Rendre exécutable le script perl correspondant. Dans mon cas, j'avais besoin de faire :

    sudo chmod +x /usr/share/doc/git/contrib/diff-highlight/diff-highlight

  • Mettez à jour votre ~/.gitconfig pour obtenir le résultat souhaité, en ajoutant (notez qu'il s'agit de TABS, et non de 4 espaces) :

    [color "diff-highlight"] oldNormal = red oldHighlight = red 52 newNormal = green newHighlight = green 22

  • Appréciez le résultat (note : ceci n'est que pour le coloriage et la mise en évidence, j'ai d'autres choses en jeu ici aussi pour l'incitation bien sûr :)). ).

diff-highligh

0voto

Xavier T. Points 14049

vimdiff file1 file2 affichera la différence de caractère entre deux fichiers.

vimdiff est un outil de comparaison inclus dans vim. (Vim doit avoir été compilé avec l'option +diff, pour en être sûr vous pouvez vérifier avec :version )

Vous pouvez également le lancer depuis vim. Voir :help diff pour plus d'informations et de commandes.

-1voto

PDug Points 676

Oui, Vim fait cela, y compris la mise en évidence du texte modifié à l'intérieur d'une ligne.
Voir :h diff y :h 08.7 pour plus de détails sur la manière de différencier les fichiers.

Vim utilise un algorithme assez simple pour le surlignage. Il recherche sur la ligne le premier caractère modifié, puis le dernier caractère modifié, et surligne simplement tous les caractères entre eux.
Cela signifie que vous ne pouvez pas avoir plusieurs mises en évidence par ligne - de nombreuses décisions de conception dans Vim donnent la priorité à l'efficacité.

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