Saya tahu regex untuk melakukan penggantian global,
%s/old/new/g
Bagaimana cara Anda melakukan pencarian-ganti interaktif di Vim ?
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:
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:
The
s//
akan menggunakan pola pencarian terakhir.sumber
Saya pikir Anda sedang mencari
c
, misalnyas/abc/123/gc
, ini akan menyebabkan VIM mengkonfirmasi penggantian. Lihat: bantuan: gantikan informasi lebih lanjut.sumber
Saya biasanya menggunakan perintah find / substitute / next / repeat :-)
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).sumber
<CR>
?Jika Anda hanya ingin menghitung jumlah kemunculan 'abc' maka Anda bisa melakukannya
%s/abc//gn
. Ini tidak menggantikan apa pun tetapi hanya melaporkan jumlah kemunculan 'abc'.sumber
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 .
sumber
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'
sumber
nvim
fitur bawaan, bagus untuk diketahui! Terima kasih telah berbagi!