Jawaban:
Mungkin ada cara lain, tetapi pendekatan ini memungkinkan Anda melakukan lebih dari sekadar menambahkan chunk, itulah sebabnya saya cenderung menggunakannya cukup banyak.
Jalankan :Gdiff
perintah. Ini akan membuka pemisahan dengan versi file saat ini yang saat ini ada di indeks ke kiri / atas jendela asli.
Saat berada di jendela asli (kanan atau bawah), lakukan pemilihan visual perubahan yang Anda inginkan git add
.
Jalankan :diffput
perintah, yang dapat beroperasi pada kisaran. ( dp
Kunci tidak berfungsi dalam mode Visual.)
Tutup perubahan penyimpanan jendela kedua itu untuk memperbarui file dalam indeks. Di sini Anda dapat mengeditnya sesuka Anda sebelum menyimpan, tidak harus sama persis dengan versi asli atau baru file.
Pikiran yang :diffput
mungkin tidak selalu memberi Anda apa yang Anda harapkan tergantung pada struktur perubahan (terutama jika Anda hanya melakukan bagian dari blok perubahan yang berdekatan). Jadi jangan lupa untuk memvalidasi komit. Dalam sebagian besar situasi praktis ini berfungsi dengan baik.
Vimcasts memiliki seri hebat di Fugitive.vim . Episode Fugitive.vim - bekerja dengan indeks git akan menjadi yang paling membantu untuk pertanyaan Anda.
Anda dapat menggunakan :Gdiff
untuk hanya menampilkan sebagian file. Menjalankan :Gdiff
akan menunjukkan kepada Anda file saat ini "berbeda" dengan tahap / indeks. Anda dapat menggunakan perintah diff Vim ini ( dp
, do
, :diffput
, dan :diffget
) untuk memindahkan cowok ke tahap / index. Kemudian Anda menulis file stage / index seperti buffer lainnya, :w
/ :x
.
Ketika Anda secara khusus bertanya tentang solusi yang menggunakan plugin lain, saya akan perhatikan bahwa Anda juga dapat mengatur pilihan visual menggunakan vimagit , yang merupakan plugin Git (berdasarkan pada plugin Magit populer dari editor lainnya) ) berpusat di sekitar melihat, staging, dan melakukan perubahan.
Untuk melakukan tahap pemilihan visual menggunakan Vimagit:
Jalankan :Magit
perintah untuk membuka buffer baru yang menampilkan semua bakhil yang diubah di repositori Anda (bukan hanya dalam satu file),
Temukan garis yang ingin Anda panggungkan dan lakukan visual
seleksi Anda ,
Tekan "panggung" pemetaan: S
.
vim-gitgutter
Stage Complete Hunk
<Leader>hs
atau:GitGutterStageHunk
Tahap Bagian dari Hunk khusus Penambahan (sejak 8/2019)
Mode visual
{Visual}<Leader>hs
:'<,'>GitGutterStageHunk
'<,'>
seperti biasa dimasukkan untuk Anda)Jarak
:42,45GitGutterStageHunk
Tahap Bagian dari Hunk apa pun melalui Jendela Pratinjau (sejak 8/2019)
<Leader>hp
:wincmd P
<Leader>hs
atau:GitGutterStageHunk
Diperbarui: 17.8.2019 karena komit bc1d28d dan b036fcf baru-baru ini
:Gstatus
+D
untuk melakukan hal yang sama dengan buron. Dengan cara ini saya juga dapat memilih file yang saya operasikan di antara daftar file yang telah dimodifikasi.