Как отобразить разницу между двумя буферами с разницей «на уровне персонажа»

20

Когда два буфера сравниваются на предмет различий, M-x ediff-buffersне указываются конкретные символы, которые изменились в слове (то есть различия «на уровне символов»). Большинство современных инструментов сравнения покажут различия в слове.

В Emacs по умолчанию отсутствует эта важная (или, очевидно, полезная?) Функция. Как я могу заставить Emacs отображать различия по символам?

Обновление Вот M-x ediff-buffers diff1 diff2, используя, emacs -Qчтобы убедиться, что моя тема не мешает: введите описание изображения здесь

Вот тот же текст, вставленный в Meld: введите описание изображения здесь

modulitos
источник
Похоже, что эта проблема связана с темой, которую вы используете. В ванильном Emacs (24.4) выделены различия между отдельными строками. Вы можете проверить это, запустив Emacs с помощью emacs -Qи вызова ediff-buffersна diff1и , diff2как обычно.
itjeyd
Я пробовал работать с emacs -Q, добавлено выше. Кроме того, я изменил свой вопрос, чтобы он касался различий на уровне символов вместо различий между строками.
modulitos

Ответы:

9
(setq-default ediff-forward-word-function 'forward-char)
Йоаким Хорсман
источник
6

Эта функция называется «уточнение» в Ediff. Вы можете нажать, *чтобы уточнить текущий блок или @включить автоматическое уточнение всякий раз, когда вы переходите на другой блок.

legoscia
источник
1
Я изменил мой вопрос , для решения символьного уровня посмотреть различие вместо того , внутри линии сравнения. Можно ли заставить Emacs показывать различия в слове?
modulitos