Visual pilih hasil pencarian saat ini

9

Saya telah hlsearchmenetapkan, tetapi kadang-kadang membuai saya berpikir bahwa saya memiliki istilah pencarian yang dipilih secara visual, dan hanya dapat menekan cuntuk mengubahnya.

Istilah yang dicari mungkin bukan jumlah huruf, kata, bahkan garis yang mudah - dan lagi pula, saya tidak ingin menghitung.

Apakah ada cara untuk vh(atau ch), katakanlah, di mana hberjalan hingga sorotan saat ini berhenti?

OJFord
sumber

Jawaban:

14

Anda dapat menggunakan gngerakan untuk itu, ia memilih elemen yang dicari berikutnya.

Anda dapat menggunakannya seperti ini:

/foo<CR>
gn            -> select the next "foo"
sbar<Esc>     -> (optional) substitute it with "bar"

Bonus: Untuk .mengulang pencarian dan perubahan, gunakan a cuntuk melakukan segalanya dalam satu perintah:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo
nobe4
sumber
1
Fantastis! Terima kasih. (Siapa pun yang seperti saya merindukan mengapa .akan mengulangi seluruh tindakan, dan tidak dapat membuatnya bekerja - baca lebih hati-hati - cpertama! Tidak bisa meminta yang lebih baik.)
OJFord
3
Perhatikan bahwa Anda juga dapat menggunakan gNuntuk memilih secara visual pertandingan sebelumnya.
statox
Apa perbedaan antara ini dan hanya menekan nuntuk menuju ke hasil pencarian berikutnya?
user1717828
ia melakukan perubahan juga, jadi alih-alih mengulangi n.(kejadian berikutnya, ulangi modifikasi), Anda bisa menekan .(ulangi modifikasi, yaitu "ubah kejadian berikutnya")
nobe4
Memang, ketika .dipanggil gn, yang asli footelah menghilang, jadi Vim mencari yang berikutnya foo. Begitu gnjuga apa yang nakan dilakukan (dan banyak lagi). Tetapi, seperti halnya n, perhatikan bahwa ini hanya berfungsi dengan baik bila bartidak mengandung foo!
joeytwiddle