Saya sadar bahwa saya dapat menggunakan /diikuti oleh regex untuk mencari sesuatu. Dan saya bisa gunakan ?untuk mencari mundur. Dan saya bisa menggunakan ndan Nmengulangi pencarian maju dan mundur.
Ada juga dua cara pintas yang bagus: *atau #akan mencari kata di bawah kursor (maju / mundur). Itu sangat berguna! (ada juga g*dan g#varian)
Tapi ... Setelah saya memilih teks menggunakan mode visual ( v), bagaimana saya bisa meminta Vim untuk mencari teks itu dengan tepat? Melihat sekilas :help
tidak ... huh ... bantu aku.
*
dan#
! Akan menyenangkan jika pertanyaan Anda juga akan menjelaskan apag*
dang#
akan melakukan;)Jawaban:
Urutan berikut akan melakukan apa yang Anda inginkan, mengingat blok teks yang sudah dipilih:
"
register secara default)"
register)(*) mode "very no magic" menafsirkan teks berikut sebagai teks biasa dan bukan sebagai regex. catat bahwa itu
\
dan/
masih istimewa dan harus ditangani dengan cara lain. Jika teks tidak memiliki karakter yang dianggap spesial, Anda dapat melewati langkah ini.Sumber: Vim Tips Wiki
sumber
Anda dapat menarik teks yang disorot terlebih dahulu. Kemudian
/
Ctrlr
"
Yang akan menempel apa yang telah Anda tarik setelah /.
sumber
/\V<C-r>"
. Dengan mendahului\V
permintaan pencarian Anda, Anda memberi tahu vim untuk menggunakan "sangat tanpa sihir". Serangan balik masih dapat menyebabkan masalah. Lihat:help \V
Ctrl+R
itulah cara Anda mengakses register, dan*
hanyalah register clipboard sistem. Misalnya, Anda juga dapat melakukan:yaw
untuk menarik kata ke dalam register"
(register default), kemudian/<C-r>"
untuk mencari string itu./
untuk melakukan pencarian Anda, gunakan?
sebagai gantinya, karena pencarian terbalik akan menghilangkan garis miring secara default. Kemudian Anda dapat menekanN
untuk melanjutkan pencarian Anda ke arah maju.Saya tidak pernah merasakan perlunya fitur seperti itu tetapi, mengingat Anda dapat menemukan kebutuhan untuk fitur apa pun di Vim, saya pikir itu akan membantu:
Saya tidak mengujinya tetapi, melihat kode, tampaknya persis apa yang Anda cari.
sumber
Anda dapat menemukan metode untuk membuat perilaku ini di wiki vim .
sumber
vnoremap // y/\V<C-r>=escape(@",'/\')<CR><CR>
Solusi ini memberdayakan pencarian vim Anda konteks yang dipilih secara visual bahkan dengan multiline dan karakter melarikan diri.
Tambahkan kode berikut di dalam diri Anda
.vimrc
, dan cari konten yang dipilih secara visual oleh//
. Anda juga dapat secara global mengganti konten yang dipilih dengan/s
. Atau Gantikan konteks yang dipilih secara lokal//
terlebih dahulu, lalu pilih wilayah dan secara visual:'<,'>s//{new_text}
.Konfigurasi di atas hanya tentang pencarian. Untuk semua konfigurasi vim saya, silakan kunjungi .vimrc
sumber
Dalam konfigurasi saya di dua mesin terpisah, jika saya memilih teks dan kemudian tekan
/
secara otomatis mencari teks yang dipilih.sumber