Di Vim, bagaimana Anda mencari karakter batas kata, seperti \ b di regexp?

139

Saya ingin dapat mencari

/the\b

untuk menemukan " tetapi " bukan "lalu" .

Saya juga mencoba mencari dengan sihir yang dihidupkan:

/\vthe\b
kortina
sumber

Jawaban:

156

/the\>

Lihat :help /ordinary-atom

Saya menganggap "regexp" berarti PCRE . Perlu dicatat bahwa sintaks regex Vim berbeda dari (dan tampaknya mendahului) PCRE.

Lihat juga:

Adam Monsen
sumber
1
mengapa tidak bekerja? vim tidak sesuai dengan regex?
Kwolf
4
Saya berasumsi maksud Anda Perl Regular Regular Expressions. Sintaks regex Vim mendahului PCRE. Saya menambahkan tautan ke pertanyaan terkait.
Adam Monsen
"regexp" tidak berarti PCRE. Ini hanya sinonim dengan "regex".
henrebotha
68

Gunakan \<dan \>untuk kata mulai dan akhir kata, masing-masing.

Misalnya dalam kasus spesifik Anda, Anda akan menggunakan:

/ the \> /
Luke Girvin
sumber
36

Jika very magicdihidupkan, maka Anda tidak harus melarikan diri dari >karakter. Lihat apa pencarian ajaib . SO dalam kasus Anda, Anda akan melakukan:

/\v<the>

hanya akan mencari kata 'the'.

Prasanna Natarajan
sumber
15

jika Anda mencoba mencari kata di kursor Anda. Anda bisa menekan *, atau #untuk pencarian mundur.

Rocky
sumber