Jak pokazać różnicę między dwoma buforami za pomocą różnic „na poziomie postaci”

20

Kiedy dwa bufory są porównywane dla różnic, M-x ediff-buffersnie wskazuje konkretnych znaków, które zmieniły się w obrębie słowa (tzn. Różnice „na poziomie znaków”). Większość nowoczesnych narzędzi do porównywania wyświetla różnice w jednym słowie.

Domyślnie Emacsowi brakuje tej ważnej (lub oczywiście przydatnej?) Funkcji. Jak sprawić, by Emacs wyświetlał różnice według postaci?

Zaktualizuj Oto M-x ediff-buffers diff1 diff2, emacs -Qaby upewnić się, że mój motyw nie zakłóca: wprowadź opis zdjęcia tutaj

Oto ten sam tekst wklejony w Meld: wprowadź opis zdjęcia tutaj

modulitos
źródło
Wygląda na to, że ten problem jest związany z używanym motywem. W waniliowym Emacsie (24.4) wyróżniono różnice między poszczególnymi liniami. Można to sprawdzić poprzez uruchomienie przez Emacs emacs -Qi powołanie ediff-bufferssię na diff1i diff2tak jak zwykle.
itsjeyd
Próbowałem biegać emacs -Q, dodałem powyżej. Zmodyfikowałem również moje pytanie, aby uwzględnić różnice między znakami zamiast różnic między wierszami .
modulitos

Odpowiedzi:

9
(setq-default ediff-forward-word-function 'forward-char)
Joakim Hårsman
źródło
6

Ta funkcja nazywa się „udoskonalaniem” w Ediff. Możesz nacisnąć, *aby zawęzić bieżący przystojniak lub @włączyć automatyczne udoskonalanie za każdym razem, gdy przejdziesz do innego przystojniaka.

legoscia
źródło
1
Zmodyfikowałem moje pytanie, aby rozwiązać różnice między znakami zamiast różnic między wierszami . Czy to możliwe, aby Emacs pokazywał różnice w jednym słowie?
modulitos