邪恶模式和正则表达式


10

在Vim中,如果要搜索X为数字的所有变量名LX,则只需键入即可/L\d。但是,这似乎不适用于evil

Evil模式下是否有用于正则表达式的另一种语法,还是我不得不依靠一些Emacs功能来搜索和使用正则表达式进行替换?

我正在使用spacemacs,对Emacs中的大多数事情我一无所知,很高兴整日处于Evil模式:)。


您要在哪里搜寻?在文档中还是在emac的全局变量中?
Jules

我正在搜索文本文档
Michelrandahl,2016年

您使用的isearch是类似helm-swoop还是的东西swiper?最后两个应该能够轻松完成您想要的操作。如果您想使用常规isearch功能但想使用其他正则表达式引擎,请访问github.com/benma/visual-regexp-steroids.el
Jules

Answers:


7

evil使用引擎盖下的Emacs regexp工具。不幸的是,Emacs似乎没有单独的数字语法类,并且无法识别\d regexp类。

因此,要匹配名为LXwhere X是数字的变量,就好像您陷入了笨拙/L[0-9]甚至笨拙的境地/L[[:digit:]]

请注意,原则上,您似乎可以使用 列在下面的字符代码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).

根据describe-categories,数字属于类别6。因此,数字/L\c6应该可以工作(尽管对我而言不是,即使其他类别也可以)。不过,与相比,您不会为自己省去很多麻烦的输入/L[0-9]


非常感谢你!认为我现在可以使用笨拙的语法。很高兴再次以更便捷的方式搜索替换,我刚刚测试了它甚至可以与捕获模式一起使用,是的!
Michelrandahl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.