Cara menunjukkan perbedaan antara dua buffer dengan perbedaan "level karakter"

20

Ketika dua buffer dibandingkan untuk perbedaan, M-x ediff-bufferstidak menunjukkan karakter spesifik yang telah berubah dalam sebuah kata (yaitu diff "level karakter"). Kebanyakan alat diff modern akan menampilkan diff dalam sebuah kata.

Emacs tampaknya kehilangan fitur penting (atau jelas berguna?) Ini secara default. Bagaimana saya bisa membuat Emacs menampilkan diff berdasarkan karakter?

Perbarui Di Sini M-x ediff-buffers diff1 diff2, gunakan emacs -Quntuk memastikan bahwa tema saya tidak mengganggu: masukkan deskripsi gambar di sini

Ini teks yang sama yang ditempel ke Meld: masukkan deskripsi gambar di sini

modulitos
sumber
Sepertinya masalah ini terkait dengan tema yang Anda gunakan. Dalam vanilla Emacs (24.4), perbedaan antara garis individu disorot. Anda dapat memverifikasi ini dengan memulai Emacs via emacs -Qdan memanggil ediff-buffersdi diff1dan diff2seperti biasa.
itsjeyd
Saya mencoba berlari dengan emacs -Q, ditambahkan di atas. Juga, saya memodifikasi pertanyaan saya untuk mengatasi perbedaan tingkat karakter alih-alih perbedaan intra-line .
modulitos

Jawaban:

9
(setq-default ediff-forward-word-function 'forward-char)
Joakim Hårsman
sumber
6

Fitur ini disebut "pemurnian" di Ediff. Anda dapat menekan *untuk memperbaiki bagian yang sekarang, atau @untuk mengaktifkan pemurnian otomatis setiap kali Anda pindah ke bagian yang lain.

legoscia
sumber
1
Saya memodifikasi pertanyaan saya untuk membahas perbedaan tingkat karakter dan bukan perbedaan intra-line . Apakah mungkin untuk membuat Emacs menunjukkan perbedaan dalam sebuah kata?
modulitos