Cómo mostrar una diferencia entre dos buffers con diferencias de "nivel de personaje"

20

Cuando se comparan dos búferes por diferencias, M-x ediff-buffersno indica los caracteres específicos que han cambiado dentro de una palabra (es decir, diferencias de "nivel de caracteres"). La mayoría de las herramientas diff modernas mostrarán las diferencias dentro de una palabra.

Parece que a Emacs le falta esta característica importante (¿o obviamente útil?) Por defecto. ¿Cómo puedo hacer que Emacs muestre las diferencias por carácter?

Actualización Aquí M-x ediff-buffers diff1 diff2, utilizo emacs -Qpara garantizar que mi tema no interfiera: ingrese la descripción de la imagen aquí

Aquí está el mismo texto pegado en Meld: ingrese la descripción de la imagen aquí

modulitos
fuente
Parece que este problema está relacionado con el tema que está utilizando. En Vanilla Emacs (24.4), se resaltan las diferencias entre líneas individuales. Puede verificar esto al iniciar Emacs a través emacs -Qy llamando ediff-buffersen diff1y diff2como lo haría normalmente.
itsjeyd
Intenté correr con emacs -Q, agregué arriba. Además, modifiqué mi pregunta para abordar las diferencias de nivel de caracteres en lugar de las diferencias entre líneas .
modulitos

Respuestas:

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

Esta característica se llama "refinación" en Ediff. Puede presionar *para refinar el trozo actual o @para activar el refinado automático cada vez que se mueva a un trozo diferente.

legoscia
fuente
1
Modifiqué mi pregunta para abordar las diferencias de nivel de caracteres en lugar de las diferencias dentro de la línea . ¿Es posible hacer que Emacs muestre las diferencias dentro de una palabra?
modulitos