web-dev-qa-db-fra.com

Des différences visuelles dans la console Linux?

Il y a plusieurs années, j'ai utilisé d32 qui était disponible pour DOS et Linux.

Un diff visuel non GUI est-il disponible pour Linux comme celui-ci?

Tout autre que Vim et Emacs (Vim et Emacs sont trop puissants :-))

71
leedit

J'utilise vimdiff. Ou il y a aussi sdiff.

60
Gregory Pakosz

Si vous êtes à l'aise avec git, vous pouvez également utiliser git diff pour générer un chemin pour vous. Il vous donnera généralement de jolies couleurs, une page vers less et une sortie par défaut du format diff unifié . Cela fonctionnera, que les fichiers fassent partie ou non d'un référentiel git.

git diff -- file.a file.b

Si file.a et file.b résident dans un dépôt git et ne sont pas suivis, vous devrez fournir --no-index:

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

car git diffère de l'index par défaut.

23
kristianlm

Aucune des réponses existantes ici ne correspond tout à fait à mon cas d'utilisation, mais j'ai trouvé cdiff , qui est un joli petit logiciel qui fait exactement ce dont j'ai besoin:

Outil basé sur les termes pour afficher les différences incrémentielles colorées dans un espace de travail Git/Mercurial/Svn ou depuis stdin, avec prise en charge côte à côte et pager automatique.

Voici à quoi ressemble le mode côte à côte:

side by side diff output

21
Nick Knowlson

Vous pouvez essayer ColorDiff .

18
yigit

Vim est livré avec vimdiff qui fonctionne plutôt bien ...

9
robince

VS Code est peut-être une solution plus lourde que les autres, mais a de belles différences:

code --diff file1.ext file2.ext

3
Luke Williams

Personnellement, j'aime utiliser vimdiff. Mais si vous ne connaissez pas vim, cela ne vous sera pas très utile.

3
Jason Axelson

Votre titre mentionne "console Linux" mais votre question mentionne meld, qui est une application graphique. Cela pourrait aider les répondeurs si vous pouviez clarifier cela.

Dans les applications GUI, la fusion est toujours à peu près la norme. Cela fonctionne bien, c'est assez joli et intuitif.

Si vous êtes vraiment limité à utiliser la console (c'est-à-dire uniquement du texte), en dehors des utilitaires de diff intégrés aux éditeurs comme vim et emacs, vous pouvez également essayer l'utilitaire de ligne de commande d'origine diff. Je trouve très utile d'utiliser le -y option pour afficher les fichiers côte à côte, et il existe d'autres options que j'ai utilisées pour afficher les différences "unifiées" et pour définir avec précision la quantité de contexte autour des différences correspondantes. Si vous canalisez la sortie de diff dans less, vous pouvez naviguer facilement.

3
Carl Smotricz

Midnight Commander (mc) a un diff intégré et des fonctions beaucoup plus utiles. Essayer:

Sudo apt install mc

2
aaa bbb

vimdiff fera ce que vous voulez. Vim est installé par défaut sur la plupart des distributions Linux, vous n'avez donc probablement même pas besoin d'installer quoi que ce soit.

2
Dave Kirby

Emacs a un outil de diff visuel intégré: M-x ediff.

2
JesperE

J'ai commencé à reconstruire xxdiff dans la console (depuis que je suis entièrement passé au développement de la console tmux) en un nouvel outil à fichier unique basé sur Python que j'appelle "termdiff". J'ai rencontré des problèmes de compatibilité avec les malédictions, donc je mets cela sur la glace pour l'instant, j'ai juste besoin de temps pour résoudre les problèmes mineurs liés au remplissage de l'espace vide, mais il crache actuellement une sortie qui ressemble à xxdiff et vous pouvez le canaliser en moins.

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

Essayez termdiff --cat ou termdiff --less, cela fonctionne.

En attendant, j'utilise une configuration et un ediff Emacs personnalisés, mais c'est un peu lent pour commencer, j'aimerais toujours un programme de diff dédié à démarrage rapide dans la console.

1
blais

Essayez fusion . C'est très léger et intuitif.

0
frazzaglia