Comment afficher un diff entre deux tampons avec des diff "au niveau du caractère"

20

Lorsque deux tampons sont comparés pour les différences, M-x ediff-buffersn'indique pas les caractères spécifiques qui ont changé dans un mot (c'est-à-dire les différences "au niveau du caractère"). La plupart des outils de diff modernes montreront les diff dans un mot.

Emacs semble manquer cette fonctionnalité importante (ou évidemment utile?) Par défaut. Comment puis-je faire en sorte qu'Emacs affiche les différences par caractère?

Voici commentM-x ediff-buffers diff1 diff2 utiliser emacs -Qpour vous assurer que mon thème n'interfère pas: entrez la description de l'image ici

Voici le même texte collé dans Meld: entrez la description de l'image ici

modulitos
la source
Il semble que ce problème soit lié au thème que vous utilisez. Dans Emacs vanille (24.4), les différences entre les lignes individuelles sont mises en évidence. Vous pouvez vérifier cela en commençant par Emacs emacs -Qet appelant ediff-bufferssur diff1et diff2comme vous le feriez normalement.
itsjeyd
J'ai essayé de courir avec emacs -Q, ajouté ci-dessus. De plus, j'ai modifié ma question pour aborder les différences au niveau des caractères au lieu des différences intra-ligne .
modulitos

Réponses:

9
(setq-default ediff-forward-word-function 'forward-char)
Joakim Hårsman
la source
6

Cette fonctionnalité est appelée "raffinage" dans Ediff. Vous pouvez appuyer sur *pour affiner le morceau actuel ou @pour activer le raffinage automatique chaque fois que vous passez à un autre morceau.

legoscia
la source
1
J'ai modifié ma question pour aborder les différences au niveau du caractère au lieu des différences intra-ligne . Est-il possible de faire en sorte qu'Emacs montre les différences dans un mot?
modulitos