Setiap kali Anda ingin mencari teks di vim Anda akan mengetik /dan kemudian string yang Anda cari.
Namun, ketika string itu panjang, dan Anda ingin melakukan ini beberapa kali, apakah ada cara untuk melakukannya sehingga Anda tidak perlu mengetik /andthisreallylongstring
lebih dari satu kali?
Jawaban:
Tekan "n" setelah Anda menyelesaikan pencarian, maka itu akan mengulangi tindakan sebelumnya (pencarian).
sumber
N
akan menuju ke hasil sebelumnya./
akan memanggil kembali istilah pencarian terakhirq/
akan menampilkan jendela yang dapat diedit dengan semua istilah pencarian terbaru./
dan Enter akan mengulangi pencarian sebelumnya. Menekan?
dan Enter akan mengulangi pencarian sebelumnya ke belakang./Ctrl-F
adalah alternatif untukq/
itu mungkin mnemonic yang lebih mudah (ctrl-f == find). Seperti q, ini juga berfungsi untuk mode perintah.Jika string yang Anda cari berada di bawah kursor, maka Anda dapat mengetik *untuk mencarinya ke depan, atau #untuk mencarinya ke belakang.
sumber
Bagaimana saya biasanya mencari adalah sesuatu seperti;
Vim menyimpan riwayat pencarian Anda, jadi jika Anda membutuhkan pencarian sebelumnya, Anda dapat menekan '/' dan menggunakan tombol ATAS dan BAWAH atau <Ctrl-P> <Ctrl-N> untuk menelusuri riwayat pencarian.
Anda juga bisa menggunakan '?' alih-alih '/' untuk mencari mundur.
Saya juga suka menggunakan:
Sekarang ini hanya akan menjadi pencarian case sensitif jika Anda memiliki karakter huruf besar dalam string pencarian.
sumber
Dua tips tambahan yang dapat membuat pencarian Anda lebih efisien adalah
set hlsearch
danset incsearch
.set hlsearch
, yah, sorot hasil pencarian Anda. Ketik:noh
untuk mematikannya saat Anda tidak membutuhkannya lagi.set incsearch
mengaktifkan pencarian tambahan.Diekstrak dari
:help incsearch
Tanpa
incsearch
, hasil Anda hanya akan ditampilkan setelah menekan<CR>
kata kunci pencarian Anda.Contoh:
Anda ingin mencari
wildignore
Anda mengetik
/wild
dan kecocokan pertama disorot secara otomatis.Kemudian ketik
i
dan lanjutkan ke pasangan yang benar berikutnya.sumber
Kiat lain yang belum dicakup: Menekan karakter
q
lalu/
, akan memberi Anda daftar istilah pencarian sebelumnya. Anda dapat mengeditnya seperti baris lain dalam dokumen, dan kemudian tekan enter untuk menggunakannya kembali untuk pencarian baru.sumber
Setelah menekan /untuk memulai pencarian, Anda dapat panah atas untuk menelusuri sejarah pencarian Anda.
Anda dapat memasukkan ekspresi reguler untuk menghindari keharusan mengetikkan seluruh istilah pencarian:
and.*longstring
sumber
Apakah hanya memukul / tanpa argumen berikut tidak berfungsi untuk Anda? Di semua sistem kami, itu menyebabkan pengulangan pencarian apa pun yang dilakukan terakhir.
sumber
Ada pola yang bagus yang bisa Anda ikuti untuk mencari teks yang ditarik . Maka Anda bahkan tidak perlu mengetikkan kata itu sendiri, jika Anda menavigasi ke sana dengan cara selain pencarian. Singkatnya, jika Anda menggunakan karakter pertama dari kata yang ingin Anda cari:
(kemudian lanjutkan ke pertandingan berikutnya dengan n atau N)
Namun
*
(atau#
) mencapai hal yang hampir sama dengan semua perintah ini. Satu-satunya perbedaan adalah Anda dapat fleksibel dengan seberapa banyak kata yang Anda tentukan (daripada e, hingga akhir kata, Anda dapat memilih sebanyak yang Anda inginkan, misalnya 9l)sumber
/string
- Cari maju untuk string?string
- Cari kembali untuk stringn
- Cari instance string berikutnyaN
- Cari instance string sebelumnyasumber
Banyak waktu ketika pemrograman saya ingin mencari
aVeryLongVariableNameInTheProgram
.Dalam vim Anda dapat dengan mudah menarik teks ke dalam buffer / register dan kemudian mencarinya:
"Byw
untuk menarik teksaVeryLongVariableNameInTheProgram
ke buffer B (pilih favorit Anda, saya menggunakan B)/^RB
(garis miring, Ctrl-R, B) untuk menempelkan buffer B pada baris pencarianTentu saja Anda juga dapat menarik ke akhir baris, dll bukannya menarik satu kata - Saya kebetulan menggunakan urutan di atas sepanjang waktu.
sumber
Selain itu, Anda dapat menempelkan isi register apa pun ke dalam prompt pencarian dengan menekan Ctrl+ Rdan kemudian nama register, misalnya, / Ctrl+ R0 Enter.
sumber
Apakah string panjang yang Anda masukkan nama variabel? Atau string panjang yang ada di teks Anda? Kemudian tekan
*
untuk mencari kata / string di bawah kursor Anda.sumber