Magit: Як показати відмінності в межах рядків


14

У мене є файл, я вношу деякі зміни. Ось, як SmartGit показує відмінності.

smartgit

Як ви бачите, це показує, де різниця в межах рядка. Це змінює фон на червоний колір у конкретному положенні. І це дуже добре. Мені не потрібно витрачати час на пошук розбіжностей. Я одразу бачу, де різниця.

Тепер як це виглядає в Magit:

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

Як ви бачите, Magit каже, що різниця була в лінії WHOLE. Це не показує, де різниця в межах рядка. Тому мені потрібно знайти різницю вручну. Мені це потрібно робити кожен раз. Це не дуже порівнянно. Припустимо, у мене є відмінності у 20 рядках. Мені потрібно витратити багато часу, щоб знайти те, що насправді змінилося. Це не дуже добре.

Чи може magit показувати відмінності у фактичному стовпці, де є зміна? Як і в SmartGit.

Відповіді:


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особи.


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виконуваний файл. Для цього введіть буфер статусу магніту, натисніть 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змініть. Я здогадуюсь, ваш двигун різниці ігнорує випадок. Можливо, також будуть різні варіанти (я не впевнений, які налаштування).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.