Saya mengatur git diff
untuk membungkus ke vimdiff, menggunakan " Git Diff dengan Vimdiff " sebagai panduan, dan itu berfungsi seperti yang diharapkan kecuali ada banyak file dengan perubahan.
Ketika ada banyak file dengan perubahan dan saya jalankan git diff
, itu membuka file pertama dan, setelah berhenti dari contoh pertama vimdiff, saya disajikan dengan pesan berikut:
external diff died, stopping at filename
Ini adalah perilaku yang sangat berbeda dari yang biasa saya lakukan. Saya memiliki pengaturan yang sama di masa lalu dengan SVN dan, ketika berbeda dengan banyak file, saya akan meninjau file pertama, kemudian menulis dan berhenti menggunakan :wq
dan file berikutnya dengan perbedaan akan terbuka.
Ini tidak terjadi dengan Git. Saya sudah mencoba :n[ext]
, tetapi hal itu tidak memenuhi jendela kiri dengan file asli sehingga dapat berbeda dengan versi yang dimodifikasi.
df
aliasdiff
dandt
aliasdifftool
. Mengetik:qa
dalam Vim juga akan menggulir ke perubahan berikutnya tanpa menyimpan apa pun.git diff
daripadagit difftool
. Jadi saya telah aliasd
'diff' dan'dt' to
difftool '. Kegunaan lebih penting daripada menciptakan alias dengan pola.:w!
alih-alih:w
". Itu karena git memanggilvimdiff
dengan-R
opsi. Anda dapat menimpanya dengangit config --global difftool.vimdiff.cmd 'vimdiff "$LOCAL" "$REMOTE"'
. Itu akan membuka vimdiff dalam mode tulis.Anda dapat mencoba
git difftool
, ini dirancang untuk melakukan hal ini.Pertama, Anda perlu mengkonfigurasi alat diff untuk vimdiff
Kemudian, ketika Anda ingin melakukan diff, cukup gunakan
git difftool
sebagai gantigit diff
. Ini akan berfungsi seperti yang Anda harapkan.sumber
sumber
merge
dengandiff
jawaban di atas akan melakukan trik, yaitugit config --global diff.tool vimdiff
.Untuk orang yang ingin menggunakan alat diff lain yang tidak terdaftar di git, katakan dengan
nvim
. inilah yang akhirnya saya gunakan:Dalam kasus saya, saya mengatur
<tool name>
kenvim -d
dan memanggil perintah diff dengansumber