vim regex tidak perlu \ untuk melarikan diri


17

Dalam Vim ada pilihan untuk menulis regexs dalam gaya yang sama seperti AWK misalnya

/sp\{0,\}/
Akan

/sp{0,}/

Jawaban:


29

Dengan mendahului pola Anda \vakan membuat pola itu "ajaib", dan simbol-simbol seperti {dan [memiliki makna yang ditafsirkan (dan literal perlu diloloskan).

Jadi /\vsp{1,}akan menemukan apa yang Anda inginkan (saya baru saja mengujinya).

Anda dapat membuat ini semacam default dengan remapping /untuk /\vdengan baris berikut di vimrc Anda:

nnoremap / /\v
vnoremap / /\v

Lihat :help patternlebih lanjut.


1

/sp\{0,}

Tentu saja untuk {0,}, Anda akan lebih baik menggunakan *: /sp*akan (sama seperti di atas) menemukan 's' diikuti oleh nol atau lebih p. Perhatikan bahwa nol atau lebih selalu benar, jadi tidak ada alasan untuk itu dalam ungkapan khusus ini.


Ini semua info bagus dan sangat berguna. Apakah ada cara untuk beralih dari pelepasan karakter khusus di vim?
MageProspero

Saya mengerti maksud Anda sekarang. Saya benar-benar meragukannya, yang hampir pasti membutuhkan parser berbeda yang dikembangkan secara paralel, dan saya ragu itu akan menjadi fitur dengan permintaan yang cukup untuk membenarkan implementasi dan pemeliharaan ekstra itu.
Kevin

-1

Vim tidak memiliki opsi untuk meniru ekspresi reguler gaya awk, tidak. Ada banyak dialek regex, dan sayangnya selalu ada sedikit perbedaan dialektik ini untuk melacak ketika berpindah dari satu alat ke alat lainnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.