Saya biasanya mencari kata-kata :/string
, tetapi jika saya harus mencari seluruh baris saat ini, bagaimana melakukannya.
event: 1 beacon: 0x02 //line 1
event: 19 beacon: 0x02 //line 2
event: 1 beacon: 0x03 //line 3
event: 1 beacon: 0x02 //line 4
event: 8 beacon: 0x01 //line 5
event: 19 beacon: 0x02 //line 6
event: 1 beacon: 0x02 //line 7
Misalnya, jika cursor
saat ini pada line 1
cara mencari sama seperti :/
untuk teks yang mengandung seluruh baris saat ini. Kursor harus melompat kemudian ke pencocokan line 4
, dan lagi keline 7
command-line
search
highlight
delimiter-matching
mark
manav mn
sumber
sumber
nnoremap {key} 0y$/\V<c-r>"<cr>
Khusus untuk keperluan pemetaan, saya menemukan menggunakan
getline()
lebih elegan daripada melakukan menarik sendiri. Memanggilgetline()
dengan string'.'
mengembalikan garis di bawah kursor. Ada dua opsi yang baik untuk menggunakan ini:yang mem-parsing string
'/'
dan apa yang dikembalikan darigetline()
bersama dan mengeksekusi itu sebagai perintah vim.atau
yang menggunakan register ekspresi
@=
. Ekspresi berikut=
dievaluasi setelah yang pertama<CR>
dan ditempatkan di baris perintah.sumber
/
atau'
tidak bekerja dengan baik. Bagaimanapun, saya belajar sesuatu hari ini! Terima kasihSecara pribadi saya akan mendapatkan plugin bintang visual ( ada beberapa di luar sana ). Ada Vimcast yang bagus tentang ini: Cari teks yang dipilih . Ini berarti Anda dapat memilih jalur secara visual dan kemudian tekan
*
.Jika sebuah plugin bukan pilihan Anda, Anda dapat menambahkan pemetaan berikut ke
vimrc
:Catatan: Visual-block (
<c-v>
) tidak didukung untuk pemetaan ini.sumber
*
dari mode normal atau tidak memiliki pemetaan yang diinstal dengan benar.Semua jawaban yang ada gagal jika baris Anda berisi item tertentu yang ditafsirkan sebagai bagian dari suatu pola. The
\V
Titik mendapat sebagian besar jalan di sana tapi masih mengacaukan dengan garis miring terbalik.Coba ini untuk melarikan diri dari garis miring terbalik ...
Dan kemudian jika Anda menggunakannya dalam pemetaan, Anda akan membutuhkan satu atau dua
<Enter>
s pada akhirnya tergantung pada bagaimana Anda ingin itu berfungsi.sumber
escape(…, '/\')
Dengan vim-asterisk terinstal, gunakan saja
V$*
(atau0v$*
) untuk memilih jalur saat ini dan mencarinya.Pada perintah kedua
0
tidak perlu jika kursor sudah di awal baris.sumber
*
hanya mencari kata di bawah kursor, dan bukan pilihan visual saat ini?Satu lagi cara untuk melakukan ini adalah menggunakan jendela baris perintah:
yy/<Ctrl-F>p<Enter>
yy
/
lalu Ctrl-F untuk membuka jendela baris perintahp
untuk menempelkan garissumber
q/
untuk mendapatkan efek yang sama seperti/<c-f>
http://vim.wikia.com/wiki/Searching_for_expressions_which_include_slashes menunjukkan bahwa register pencarian dapat diatur secara langsung, seperti ini:
Ini memungkinkan pencarian pada baris dan bekerja bahkan ketika baris menyertakan garis miring.
Jadi untuk membuat, katakanlah,
\*
petakan pencarian garis:sumber