Pertanyaan Di Vim, ganti semua kemunculan istilah saat ini di bawah kursor


Jika Anda menekan * di Vim, editor akan mencari kemunculan berikutnya dari istilah dalam file yang sama. Menghemat Anda dari keharusan mengetikkan istilah.

Apakah ada cara cepat untuk mengganti istilah yang saat ini berada di bawah kursor dengan yang baru? Satu karakter untuk mengeluarkan perintah, mengetikkan istilah baru, lalu Memasukkan.


57
2018-04-04 16:12


asal


Jawaban:


Kamu dapat memakai:

:%s/<c-r><c-w>/new value/g

dimana <c-r><c-w> berarti untuk mengetik secara harfiah CTRL-rCTRL-w untuk memasukkan kata di bawah kursor.


55
2018-04-04 18:08



Cukup gunakan * lalu:

:%s//new value/

Jika Anda tidak menentukan suatu pola, perintah pengganti menggunakan yang terakhir dicari. Tergantung pada nilai gdefault dalam konfigurasi Anda, Anda mungkin perlu menambahkan a /g pengubah ke perintah itu.


90
2018-04-04 16:15



Selain jawaban lainnya, Anda dapat mengurangi beberapa penekanan tombol dengan menambahkan cuplikan berikut ke file .vimrc Anda untuk melakukan pencarian global dan mengganti.

" Search and replace word under cursor using F4
nnoremap <F4> :%s/<c-r><c-w>/<c-r><c-w>/gc<c-f>$F/i

11
2018-04-04 20:12



Saya pergi ke depan dan melambaikan plugin yang memungkinkan Anda cukup memasukkan yang berikut:

:Dr REPLACEVALUE

https://github.com/chiedojohn/vim-dr-replace


4
2018-05-06 12:49