Magit: Jak pokazać różnice w liniach

14

Mam plik, wprowadzam zmiany. Oto jak SmartGit pokazuje różnice.

smartgit

Jak widać, pokazuje, gdzie różnica mieści się w linii. Zmienia kolor tła na czerwony w konkretnym położeniu. I to jest bardzo dobre. Nie muszę tracić czasu na znajdowanie różnic. Od razu widzę, jaka jest różnica.

Teraz jak to wygląda w Magit:

wprowadź opis zdjęcia tutaj

Jak widać Magit mówi, że różnica była w CAŁEJ linii. Nie pokazuje, gdzie różnica mieści się w linii. Więc muszę ręcznie ustalić, gdzie jest różnica. Muszę to robić za każdym razem. To nie jest bardzo porównywalne. Załóżmy, że mam różnice w 20 wierszach. Muszę spędzić dużo czasu, aby znaleźć to, co się zmieniło. To nie jest bardzo dobre.

Czy magit może pokazywać różnice w rzeczywistej kolumnie, w której jest zmiana? Jak w SmartGit.

subskrybent
źródło

Odpowiedzi:

3

Jeśli chcesz zapisać to w swojej konfiguracji, tak jak ja, po prostu dodaj

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

dla Twojej .emacs.d/init.el


Inspiracją była odpowiedź Filipa .

loki
źródło
16

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

Zobacz także magit-diff-toggle-refine-hunkpowiązane polecenie Dt, którego można użyć do ustawienia zachowania w bieżącym buforze. Służy DC-utdo włączania dopracowania wszystkich porcji w buforze; w przeciwnym razie w danym momencie wyświetlane są tylko udoskonalenia dla aktualnie wybranego przystojniaka (aktualizowanie podczas przechodzenia między przystojniakami).

Aby skonfigurować wygląd „rafinacji” regionów diff, wykorzystania M-x customize-facedla diff-refine-added, diff-refine-changedi diff-refine-removedtwarze.

phils
źródło
1

Aby różnice w wyrazach działały, magit musi mieć możliwość korzystania z diffpliku wykonywalnego.

Upewnij się więc, że M-x ielm RET (executable-find "diff") RETnie zwraca nil. Jeśli zwraca, nildodaj ścieżkę do folderu zawierającego plik wykonywalny diff do exec-pathzmiennej za pomocąM-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

Następnie musisz się upewnić, że magit faktycznie używa tego diffpliku wykonywalnego. W tym celu wprowadź bufor statusu magit, naciśnij Di upewnij się, że -x Disallow external diff drivers (--no-ext-diff)jest wyłączony. W przeciwnym razie wyłącz go za pomocą -x, ustaw jako domyślny za pomocą, sa następnie zapisz ustawienia domyślne za pomocą Dw.

Po wykonaniu tej czynności możesz użyć opcji, Dtaby przełączyć magit-diff-refine-hunkopcję dla bieżącego bufora lub postępować zgodnie z tą odpowiedzią przez phils, aby uczynić to ustawienie bardziej trwałym.

Latający lis
źródło
0

Spróbuj ediff-toggle-ignore-caselub compare-ignore-casezmienna. Domyślam się, że twój silnik różnicowy ignoruje wielkość liter. Może być także w opcjach różnic (nie jestem pewien, jakie są ustawienia).

Atman50
źródło