Mode diabolique et expressions régulières


10

Dans Vim, si je veux rechercher tous les noms de variables LX où X est un nombre, je peux simplement taper /L\d. Cependant, cela ne semble pas fonctionner evil.

Existe-t-il une autre syntaxe pour les expressions régulières en mode Evil, ou vais-je devoir recourir à certaines fonctionnalités d'Emacs pour la recherche et le remplacement à l'aide d'expressions régulières?

J'utilise spacemacs, et je suis assez désemparé concernant la plupart des choses dans Emacs, restant joyeusement en mode Mal toute la journée :).


Où essayez-vous de chercher? Dans un document ou dans les variables globales d'emac?
Jules

Je recherche dans un document texte
Michelrandahl

Utilisez-vous isearchou quelque chose comme helm-swoopou swiper? Les deux derniers devraient pouvoir faire ce que vous voulez facilement. Si vous souhaitez utiliser la isearchfonction normale mais que vous souhaitez utiliser un moteur d'expression rationnelle différent, consultez github.com/benma/visual-regexp-steroids.el
Jules

Réponses:


7

evilutilise les installations d'expression rationnelle d'Emacs sous le capot. Malheureusement, Emacs ne semble pas avoir de classe de syntaxe distincte pour les chiffres et ne reconnaît pas la classe \d regexp .

Donc, pour faire correspondre votre variable nommée LXXest un chiffre, il semble que vous soyez coincé avec le maladroit /L[0-9]ou le plus maladroit /L[[:digit:]].

Notez qu'en principe, il semble que vous puissiez utiliser des codes de caractères répertoriés par 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).

Selon describe-categories, les chiffres appartiennent à la catégorie 6. Par conséquent, cela /L\c6devrait fonctionner (même si ce n'est pas le cas pour moi, même si d'autres catégories le font). Pourtant, vous ne vous épargneriez pas beaucoup de mal à taper par rapport à /L[0-9].


Merci beaucoup! Je pense que je peux vivre avec la syntaxe maladroite pour l'instant. Juste heureux de chercher à remplacer de manière plus pratique à nouveau, et je viens de tester qu'il fonctionne même avec des modèles de capture, yay!
Michelrandahl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.