W trybie normalnym Vima 0
polecenie przenosi cię do pierwszej kolumny wiersza i ^
logicznie rozpoczyna wiersz (np. Pierwszy znak inny niż biały znak). W świecie wyrażeń regularnych ^
dopasowuje pierwszy znak w wierszu, spacje lub nie. Czy Vim ma wzorzec, który zachowuje się jak polecenie „^” - pasujące do logicznego początku linii?
20
Odpowiedzi:
Nie ma skrótu do dopasowania pierwszego znaku niebiałego w linii, musisz sam zbudować wzór, np .:
Jeśli nie chcesz uwzględniać białych znaków w dopasowaniu, musisz zastosować asercję o zerowej szerokości, na przykład:
Niezupełnie ładnie, ale przynajmniej wykonuje to zadanie.
źródło
Aby dopasować pierwszą nie- białą postać, używaj jej
\S
tak, jak zwykle.Jeśli użyjesz
^
wyrażenia regularnego w vimie, dopasuje on rzeczywisty początek linii, nawet jeśli zawiera spacje.Na przykład ten wiersz zaczyna się spacją:
Ta komenda vim usunie spację wiodącą:
w wyniku czego:
Zatem wyrażenie regularne będzie zachowywać się tak, jak się spodziewasz, nawet jeśli polecenie nie.
źródło
^
Operator (jak wszystkich rozsądnych implementacje regex), będzie pasował do pierwszego znaku, nawet jeśli jest to spacja.\S
dopasowanie pierwszego znaku niebiałego.\S
dopasuje dowolny znak niebiałej spacji. Ujmując to inaczej, zastanawiam się czy Vim ma skrót zerowej szerokości na to:^\W*\S
.