Im Vim-Normalmodus 0
führt Sie der Befehl zur ersten Spalte in der Zeile und ^
zum logischen Zeilenanfang (z. B. dem ersten Nicht-Leerzeichen). Entspricht in der Regex-Welt ^
dem ersten Zeichen in der Zeile, Leerzeichen oder nicht. Verfügt Vim über ein Muster, das sich wie der Befehl '^' verhält - passend zum logischen Anfang einer Zeile?
20
Antworten:
Es gibt keine Abkürzung für das erste Nicht-Leerzeichen in einer Zeile. Sie müssen das Muster wie folgt selbst erstellen:
Wenn Sie das Leerzeichen nicht in Ihre Übereinstimmung einbeziehen möchten, müssen Sie eine Behauptung mit der Breite Null verwenden, z.
Nicht gerade hübsch, aber es erledigt zumindest die Arbeit.
quelle
Um das erste Nicht- Leerzeichen abzugleichen, verwenden Sie es
\S
wie gewohnt .Wenn Sie
^
in vim einen regulären Ausdruck verwenden, entspricht dieser dem tatsächlichen Zeilenanfang, auch wenn er Leerzeichen enthält.Diese Zeile beginnt beispielsweise mit einem Leerzeichen:
Dieser vim-Befehl entfernt das führende Leerzeichen:
was zu folgendem führt:
Der reguläre Ausdruck verhält sich also so, wie Sie es erwarten, auch wenn der Befehl dies nicht tut.
quelle
^
Operator (wie alle normalen Regex-Implementierungen) stimmt mit dem ersten Zeichen überein, auch wenn es sich um Leerzeichen handelt.\S
das erste Nicht-Leerzeichen-Zeichen verwenden.\S
passt zu jedem Nicht-Leerzeichen. Um es anders auszudrücken, ich frage mich , wenn Vim eine Null-Breite Abkürzung für diese hat:^\W*\S
.