gpt4 book ai didi

regex - 如何在 Emacs 中为@(at 符号)着色?

转载 作者:行者123 更新时间:2023-12-02 00:34:48 25 4
gpt4 key购买 nike

我可以在 .emacs 中使用以下 lisp 代码为 emacs 中的关键字着色:

(add-hook 'c-mode-common-hook
(lambda () (font-lock-add-keywords nil
'(("\\<\\(bla[a-zA-Z1-9_]*\\)" 1 font-lock-warning-face t)))))

此代码为所有以“bla”开头的关键字着色。示例:blaTest123_test

但是,当我尝试添加 @('at' 符号)而不是“bla”时,它似乎不起作用。我不认为 @ 是正则表达式的特殊字符。

你知道我如何让 emacs 突出显示以 @ 符号开头的关键字吗?

最佳答案

您的问题是 \<在你的正则表达式中,

matches the empty string, but only at the beginning of a word. `\<' matches at the beginning of the buffer (or string) only if a word-constituent character follows.

@不是词组字符。

参见:M-: (info "(elisp) Regexp Backslash") 返回

这种不受限制的图案将为任何 @ 着色:

(font-lock-add-keywords nil
'(("@" 0 font-lock-warning-face t)))

这将通过立即要求 BOL 或一些空白来执行您想要的操作。

(font-lock-add-keywords nil
'(("\\(?:^\\|\\s-\\)\\(@[a-zA-Z1-9_]*\\)" 1 font-lock-warning-face t)))

关于regex - 如何在 Emacs 中为@(at 符号)着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com