Saya bekerja dengan VIm
dan mencoba mengatur pencarian dan mengganti perintah untuk melakukan beberapa penggantian di mana saya dapat menggunakan kembali ekspresi reguler yang merupakan bagian dari string pencarian saya.
Contoh sederhana akan menjadi garis di mana saya ingin mengganti (10)
ke {10}
, di mana 10 dapat menjadi nomor apapun.
Saya datang sejauh ini
.s/([0-9]*)/what here??/
yang cocok persis dengan bagian yang saya inginkan.
Sekarang penggantinya, saya mencoba
.s/([0-9]*)/{\0}/
Tapi, ini memberi sebagai output {(10)}
Kemudian, saya mencoba
.s/(\zs[0-9]*\ze)/{\0}/
Namun, itu memberi saya ({10})
, yang saya juga tutup, tetapi tidak apa yang saya inginkan.
Saya pikir saya perlu jenis lain dari penandaan / referensi-kembali daripada ini \0
, tapi saya tidak tahu harus mencarinya ke mana. Jadi pertanyaannya adalah, dapatkah ini dilakukan dalam vim, dan jika demikian, bagaimana?
sumber
Saya baru-baru ini mewarisi beberapa kode lama dan saya ingin mengganti semua kejadian seperti:
untuk
atau
Membangun jawaban sebelumnya dan dengan harapan bahwa seseorang akan mendapat manfaat dari itu saya menggunakan perintah berikut, yang akan mengubah semua kejadian:
Jika Anda mengganti
%
dengan.
dan menghapus/g
Anda akan berakhir denganyang akan memungkinkan Anda untuk pergi ke setiap pertandingan dan memilih apakah Anda mengubahnya atau tidak.
sumber
Cara yang lebih baik untuk memungkinkan Anda memeriksa setiap pertandingan adalah dengan menambahkan "c" di bagian akhir kode, daripada pergi baris demi baris
sumber