Magit: Cara menampilkan perbedaan di dalam baris

13

Saya punya file, saya membuat beberapa perubahan. Di sini cara SmartGit menunjukkan perbedaan.

smartgit

Seperti yang Anda lihat itu menunjukkan di mana perbedaannya berada di dalam garis. Itu mengubah latar belakang ke warna merah di posisi beton. Dan itu sangat bagus. Saya tidak perlu menghabiskan waktu untuk menemukan perbedaan. Saya langsung melihat di mana bedanya.

Sekarang seperti apa di Magit:

masukkan deskripsi gambar di sini

Seperti yang Anda lihat, Magit mengatakan bahwa perbedaannya ada di garis SELURUH. Itu tidak menunjukkan di mana perbedaannya berada di dalam garis. Jadi saya perlu mencari di mana perbedaannya secara manual. Saya perlu melakukan ini setiap waktu. Ini tidak bisa dibandingkan. Misalkan saya memiliki perbedaan dalam 20 baris. Saya perlu menghabiskan banyak waktu untuk menemukan apa yang sebenarnya berubah. Itu tidak terlalu bagus.

Bisakah magit menunjukkan perbedaan di kolom aktual tempat perubahan itu? Seperti di SmartGit.

a_subscriber
sumber

Jawaban:

2

Jika Anda ingin menyimpannya di konfigurasi Anda, seperti saya, tambahkan saja

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

untuk Anda .emacs.d/init.el


Ini terinspirasi oleh jawaban phils .

loki
sumber
16

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

Lihat juga magit-diff-toggle-refine-hunkperintah, terikat Dt, yang dapat Anda gunakan untuk mengatur perilaku di buffer saat ini. Gunakan DC-utuntuk mengaktifkan perbaikan untuk semua bakhil di buffer; jika tidak, hanya penyempurnaan untuk bagian yang dipilih saat ini ditampilkan pada waktu tertentu (memperbarui saat Anda bergerak di antara bakhil).

Untuk mengkonfigurasi penampilan 'halus' daerah dari diff, penggunaan M-x customize-faceuntuk diff-refine-added, diff-refine-changeddan diff-refine-removedwajah.

phils
sumber
1

Untuk kata diff untuk bekerja, magit harus dapat menggunakan diffexecutable.

Jadi pastikan itu M-x ielm RET (executable-find "diff") RETtidak kembali nil. Jika kembali niltambahkan path ke folder yang berisi diff Anda dapat dieksekusi ke exec-pathvariabel denganM-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

Selanjutnya Anda perlu memastikan bahwa magit benar-benar menggunakan diffexecutable itu. Untuk itu masukkan buffer status magit, tekan Ddan pastikan itu -x Disallow external diff drivers (--no-ext-diff)dinonaktifkan. Kalau tidak, nonaktifkan dengan -x, atur sebagai default, slalu simpan default dengan Dw.

Setelah ini selesai, Anda dapat menggunakan Dtuntuk beralih magit-diff-refine-hunkopsi untuk buffer Anda saat ini atau ikuti jawaban ini dengan phils untuk membuat pengaturan ini lebih permanen.

FlyingFoX
sumber
0

Coba ediff-toggle-ignore-caseatau compare-ignore-casevariabel. Dugaan saya adalah mesin diff Anda mengabaikan kasing. Mungkin juga dalam opsi diff (Saya tidak yakin apa pengaturannya).

Atman50
sumber