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,}/

MageProspero
sumber

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.

Edd Steel
sumber
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.

Kevin
sumber
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.

MetaEd
sumber