Jawaban:
Tambahkan flag c (pada prompt perintah vim):
:%s/old/new/gc
akan memberi Anda konfirmasi ya / tidak pada setiap kemunculan 'lama'.
Bantuan bawaan Vim menawarkan info berguna tentang opsi yang tersedia setelah penggantian dengan konfirmasi telah dipilih. Menggunakan:
:h :s
Kemudian gulir ke bagian opsi konfirmasi. Tangkapan layar di bawah ini:
Misalnya, untuk mengganti ini dan semua kecocokan yang tersisa, gunakan a
.
Mark Biek menunjukkan menggunakan:
%s/old/new/gc
untuk pencarian global, ganti dengan konfirmasi untuk setiap substitusi. Tapi, saya juga menikmati verifikasi secara interaktif bahwa teks lama akan cocok dengan benar. Pertama saya melakukan pencarian dengan regex, lalu saya menggunakan kembali pola itu:
/old.pattern.to.match
%s//replacement/gc
The s//
akan menggunakan pola pencarian terakhir.
Saya pikir Anda sedang mencari c
, misalnya s/abc/123/gc
, ini akan menyebabkan VIM mengkonfirmasi penggantian. Lihat: bantuan: gantikan informasi lebih lanjut.
Saya biasanya menggunakan perintah find / substitute / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Yang ini find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, dan sebagainya.
Ini merepotkan bagi pergantian besar-besaran tetapi memungkinkan Anda secara selektif mengabaikan beberapa kejadian lama (dengan hanya menekan n
lagi untuk menemukan yang berikutnya alih-alih .
mengulangi pergantian).
<CR>
?
Jika teks pengganti Anda perlu diubah untuk setiap kejadian yang cocok (yaitu tidak hanya memilih Ya / Tidak untuk menerapkan penggantian tunggal), Anda dapat menggunakan plugin Vim yang saya sebut interaktif-ganti .
Neovim sekarang memiliki fitur untuk mempratinjau substitusi:
Gambar diambil dari: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Dokumentasi fitur: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
fitur bawaan, bagus untuk diketahui! Terima kasih telah berbagi!