Dalam mode normal Vim, yang 0
perintah membawa Anda ke kolom pertama pada baris dan ^
membawa Anda ke awal logis dari baris (misalnya karakter non-spasi pertama). Di dunia regex, ^
cocok dengan karakter pertama di telepon, spasi putih atau tidak. Apakah Vim memiliki pola yang berperilaku seperti perintah '^' - cocok dengan awal logis suatu baris?
20
Jawaban:
Tidak ada jalan pintas untuk mencocokkan karakter non-spasi pertama pada suatu garis, Anda harus membuat sendiri pola tersebut, seperti:
Jika Anda tidak ingin memasukkan spasi putih dalam pertandingan Anda, Anda harus menggunakan pernyataan nol-lebar, seperti:
Tidak persis cantik, tapi setidaknya itu menyelesaikan pekerjaan.
sumber
Untuk mencocokkan karakter non- spasi pertama , Anda hanya perlu menggunakan
\S
seperti biasa.Jika Anda menggunakan
^
dalam regex di vim, itu akan cocok dengan awal baris yang sebenarnya, bahkan jika itu berisi spasi putih.Misalnya, baris ini dimulai dengan spasi:
Perintah vim ini akan menghapus spasi terdepan:
menghasilkan sebagai berikut:
Jadi, regex akan berperilaku seperti yang Anda harapkan, bahkan jika perintahnya tidak.
sumber
^
operator (seperti semua implementasi regex waras), akan cocok dengan karakter pertama bahkan jika itu adalah spasi.\S
untuk mencocokkan karakter non-spasi pertama.\S
akan cocok dengan karakter non-spasi apa pun . Dengan kata lain, saya bertanya-tanya apakah Vim memiliki singkatan nol-lebar untuk ini:^\W*\S
.