Magit: как показать различия в строках

14

У меня есть файл, я делаю некоторые изменения. Вот как SmartGit показывает отличия.

SmartGit

Как вы можете видеть, это показывает, где разница находится в пределах линии. Меняет фон на красный цвет в конкретной позиции. И это очень хорошо. Мне не нужно тратить время, чтобы найти различия. Я сразу вижу, в чем разница.

Теперь, как это выглядит в Magit:

введите описание изображения здесь

Как видите, Magit говорит, что разница была в целой линии. Это не показывает, где разница находится в пределах линии. Поэтому мне нужно найти, где разница вручную. Мне нужно делать это каждый раз. Это не очень сопоставимо. Предположим, у меня есть различия в 20 строк. Мне нужно потратить много времени, чтобы найти то, что на самом деле изменилось. Это не очень хорошо.

Может ли magit показать различия в фактическом столбце, где находится изменение? Как в SmartGit.

a_subscriber
источник

Ответы:

3

Если вы хотите сохранить это в своей конфигурации, как я, просто добавьте

(setq magit-diff-refine-hunk (quote all))

на ваш .emacs.d/init.el


Это было вдохновлено ответом Филса .

локи
источник
16

M-x customize-option RET magit-diff-refine-hunk RET

Смотрите также magit-diff-toggle-refine-hunkкоманду связанный с Dt, которую вы можете использовать для установки поведения в текущем буфере. Используйте DC-utдля включения уточнения для всех блоков в буфере; в противном случае в любой момент времени отображаются только уточнения для выбранного в настоящий момент блока (обновляются по мере перемещения между элементами).

Для того, чтобы настроить внешний вид «рафинированных» регионов дифф, использование M-x customize-faceдля diff-refine-added, diff-refine-changedи diff-refine-removedлица.

Phils
источник
1

Для работы различий в словах magit должен уметь использовать diffисполняемый файл.

Поэтому убедитесь, что M-x ielm RET (executable-find "diff") RETне возвращается nil. Если он вернется, nilдобавьте путь к папке, содержащей ваш исполняемый файл diff, в exec-pathпеременную сM-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

Затем вы должны убедиться, что magit действительно использует этот diffисполняемый файл. Для этого введите буфер состояния magit, нажмите Dи убедитесь, что -x Disallow external diff drivers (--no-ext-diff)он отключен. В противном случае отключите его с помощью -x, установите его по умолчанию с помощью, sа затем сохраните значения по умолчанию с помощью Dw.

После того, как это будет сделано, вы можете использовать Dtэту magit-diff-refine-hunkопцию для переключения вашего текущего буфера или следовать этому ответу по phils, чтобы сделать этот параметр более постоянным.

Летающий лис
источник
0

Попробуй ediff-toggle-ignore-caseили compare-ignore-caseпеременная. Полагаю, ваш механизм сравнения игнорирует дело. Может также быть в опциях diff (я не уверен, какие настройки).

Atman50
источник