Modo malvado y expresiones regulares

10

En Vim, si quiero buscar todos los nombres de variables LX donde X es un número, simplemente puedo escribir /L\d. Sin embargo, esto no parece funcionar evil.

¿Existe otra sintaxis para las expresiones regulares en modo Evil, o tendré que recurrir a alguna funcionalidad de Emacs para buscar y reemplazar usando expresiones regulares?

Estoy usando spacemacs, y no tengo ni idea de la mayoría de las cosas en Emacs, felizmente permanezco en modo Evil todo el día :).

Michelrandahl
fuente
¿Dónde intentas buscar? ¿En un documento o en las variables globales de emac?
Jules
Estoy buscando en un documento de texto
Michelrandahl
¿Estás usando isearcho algo como helm-swoopo swiper? Los dos últimos deberían poder hacer lo que quieras fácilmente. Si desea utilizar la isearchfunción normal pero desea utilizar un motor regexp diferente, consulte github.com/benma/visual-regexp-steroids.el
Jules el

Respuestas:

7

evilutiliza las instalaciones de expresiones regulares de Emacs debajo del capó. Desafortunadamente, Emacs no parece tener una clase de sintaxis separada para los dígitos, y no reconoce la clase \d regexp .

Por lo tanto, para hacer coincidir su variable llamada LXwhere Xes un dígito, parece que está atascado con lo torpe /L[0-9]o incluso lo más torpe /L[[:digit:]].

Tenga en cuenta que, en principio, parece que podría usar códigos de caracteres según lo enumerado por 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).

Según describe-categories, los dígitos son de la categoría 6. Por lo tanto, /L\c6debería funcionar (aunque no lo hace para mí, a pesar de que otras categorías sí lo hacen). Aún así, no estaría ahorrándose mucho tipeo incómodo en comparación con /L[0-9].

Dan
fuente
¡Muchas gracias! Creo que puedo vivir con la sintaxis torpe por ahora. Simplemente feliz de buscar reemplazar de una manera más conveniente nuevamente, y acabo de probar que incluso funciona con patrones de captura, ¡yay!
Michelrandahl el