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

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.


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.