Ruby 我想排除emacs中模式关键字中的字符

Ruby 我想排除emacs中模式关键字中的字符,ruby,emacs,Ruby,Emacs,假设我有一行ruby代码,如下所示: example.new() 我的主题是这样的: (font-lock-add-keywords 'ruby-mode '(("\\([.][a-zA-Z]+\\)" . font-lock-constant-face))) 目的是用特殊的颜色突出显示这行代码中的“new”而不是“.”。是否有办法存档此结果?移动的匹配项。退出该组,然后仅突出显示该组: 字体锁定添加关键字的ruby模式 '[.]\\[a-zA-Z]+\\1字体锁定固定面 由

假设我有一行ruby代码,如下所示:

example.new()
我的主题是这样的:

(font-lock-add-keywords 'ruby-mode
        '(("\\([.][a-zA-Z]+\\)" . font-lock-constant-face)))
目的是用特殊的颜色突出显示这行代码中的“new”而不是“.”。是否有办法存档此结果?

移动的匹配项。退出该组,然后仅突出显示该组:

字体锁定添加关键字的ruby模式 '[.]\\[a-zA-Z]+\\1字体锁定固定面
由于您的正则表达式使用了一个附加组\\…\\n您可以在突出显示中引用它:因此,1指的是正则表达式的仅限大小写组中与第一个匹配的部分。

在尝试示例之前。新的,您是否希望正则表达式也包含一些其他变体-例如。,括号中可能出现的东西,或者你能想到的可能的例子?这里是一个草稿:[a-zA-Z]+[.]\[a-zA-Z]+\\-只突出显示数字1分组,类似于下面链接中的示例:我想突出显示括号之间的内容,以便参数根据我的主题使用不同的格式。。。示例:example.new1,2,其中1和2具有特殊格式。。。有什么方法可以存档吗?这是一个基于你上面评论的草稿:[a-zA-Z]+[.]\[a-zA-Z]+\\\[0-9]+\\\\[0-9]+\\,\s+\[0-9]+\-使用与上述链接中前面答案相同的方法,你可以添加第2组和第3组-即。,在“1”字体锁定警告面之后,您可以添加“2”字体关键字面“3”字体锁定常量面如果您要胜过其他已放置的面,则可能需要在每个组的面名称后添加一个t,以强制出现特朗普;而且,您可能还需要调整各种面应用的顺序,以便后续特朗普。谢谢,伙计!!!祝你度过愉快的一天:谢谢!!!有一个小问题:在要突出显示关键字的面之前使用“1”和“.”有什么区别吗?regex 1 face name相当于“regex”。一张脸的名字。如果您检查C-h v字体锁定关键字,您将找到基于正则表达式的高亮显示所支持格式的文档;其中一个可能性是MATCHER。FACENAME和另一个是MATCHER。突出第一个是你在原始版本中使用的,第二个是在我的答案中使用的。这两次,匹配器都是正则表达式。HIGHLIGHT可以有不同的形式,其中之一是SUBEXP FACENAME。如果你把所有这些放在一起,它看起来只是表面上取代了一个。用1。