vim regex muss nicht \ fliehen

17

In Vim gibt es eine Option regexs im gleichen Stil wie Awk zu schreiben zum Beispiel

/sp\{0,\}/
sein würde

/sp{0,}/

MageProspero
quelle

Antworten:

29

Vorangehende Ihr Muster mit \vdem Muster „Magie“ machen, und Symbole wie {und [hat einen interpretierte Sinn (und Literale werden müssen entkommen).

So /\vsp{1,}finden würde , was man wollte (ich es gerade getestet).

Sie können durch Remapping diese eine Art Standard machen , /um /\vmit den folgenden Zeilen in Ihrer vimrc:

nnoremap / /\v
vnoremap / /\v

Sehen Sie :help patternfür mehr.

Edd Steel
quelle
1

/sp\{0,}

Natürlich ist es für {0,}Sie besser, Folgendes zu verwenden *: /sp*würde (wie oben beschrieben) ein 's' finden, gefolgt von null oder mehr ps. Beachten Sie, dass null oder mehr immer wahr ist, daher gibt es in diesem speziellen Ausdruck keinen Grund dafür.

Kevin
quelle
Das war alles eine gute Info und sehr nützlich. Gibt es eine Möglichkeit, das Entkommen von Sonderzeichen in vim zu verhindern?
MageProspero
Ich verstehe, was du jetzt meinst. Ich bezweifle ernsthaft, dass mit ziemlicher Sicherheit ein anderer parallel entwickelter Parser erforderlich ist, und ich bezweifle, dass es sich um ein Feature handelt, das ausreichend nachgefragt wird, um diese zusätzliche Implementierung und Wartung zu rechtfertigen.
Kevin
-1

Vim hat keine Option, reguläre Ausdrücke im awk-Stil zu emulieren, nein. Es gibt eine Menge Dialekte von Regex, und leider gibt es immer diese kleinen dialektischen Unterschiede, die zu beachten sind, wenn von einem Werkzeug zum anderen gewechselt wird.

MetaEd
quelle