Böser Modus und reguläre Ausdrücke

10

Wenn ich in Vim nach allen Variablennamen LX suchen möchte, wobei X eine Zahl ist, kann ich einfach eingeben /L\d. Dies scheint jedoch nicht zu funktionieren evil.

Gibt es eine andere Syntax für reguläre Ausdrücke im Evil-Modus oder muss ich auf einige Emacs-Funktionen zurückgreifen, um mithilfe regulärer Ausdrücke zu suchen und zu ersetzen?

Ich benutze spacemacsund bin in Bezug auf die meisten Dinge in Emacs ziemlich ahnungslos und bleibe den ganzen Tag glücklich im bösen Modus :).

Michelrandahl
quelle
Wo versuchst du zu suchen? In einem Dokument oder in den globalen Variablen von emac?
Jules
Ich
suche
Benutzt du isearchoder so etwas wie helm-swoopoder swiper? Die letzten beiden sollten in der Lage sein, einfach zu tun, was Sie wollen. Wenn Sie die normale isearchFunktion verwenden möchten, aber eine andere Regexp-Engine verwenden möchten, besuchen Sie github.com/benma/visual-regexp-steroids.el
Jules

Antworten:

7

evilnutzt die Emacs Regexp-Funktionen unter der Haube. Leider hat Emacs nicht erscheint eine separate haben Syntax - Klasse für Ziffern und nicht die erkennen \d regexp Klasse.

Um Ihrer Variablen mit dem Namen " LXWo Xist eine Ziffer /L[0-9]?" Zu entsprechen , sieht es so aus, als ob Sie mit dem Klobigen oder dem noch Klobigeren feststecken /L[[:digit:]].

Beachten Sie, dass im Prinzip sieht es aus wie Sie verwenden können Zeichencodes als geordnet nach describe-categories:

`\cc`

matches any character whose category is *c*.  Here *c* is a
character that represents a category: thus, 'c' for Chinese
characters or 'g' for Greek characters in the standard
category table. You can see the list of all the currently
defined categories with `M-x describe-categories RET`. You can
also define your own categories in addition to the standard
ones using the `define-category` function (see Categories).

Laut describe-categoriessind Ziffern Kategorie 6. Daher /L\c6sollte es funktionieren (obwohl es für mich nicht funktioniert, obwohl andere Kategorien dies tun). Trotzdem würden Sie sich im Vergleich zu nicht viel umständliches Tippen ersparen /L[0-9].

Dan
quelle
Vielen Dank! Ich denke, ich kann jetzt mit der klobigen Syntax leben. Ich bin einfach froh, wieder bequemer nach Ersetzen suchen zu können, und ich habe gerade getestet, dass es sogar mit Erfassungsmustern funktioniert, yay!
Michelrandahl