emacs主要模式字符之间的字体锁定(括号、引号等)
我正在尝试设置一个emacs主模式,它基本上只是以不同的颜色突出显示大量不同字符之间的文本。我用方括号表示:emacs主要模式字符之间的字体锁定(括号、引号等),emacs,syntax,lisp,syntax-highlighting,mode,Emacs,Syntax,Lisp,Syntax Highlighting,Mode,我正在尝试设置一个emacs主模式,它基本上只是以不同的颜色突出显示大量不同字符之间的文本。我用方括号表示: (font-lock-add-keywords nil '(("\\[\\(.*\\)\\]" 1 font-lock-keyword-face prepend))) 但是当我尝试用其他字符替换[和]时,它停止工作。例如,圆括号“()”不起作用: (font-lock-add-keywords nil '(("\\(\\(.*\
(font-lock-add-keywords nil '(("\\[\\(.*\\)\\]"
1 font-lock-keyword-face prepend)))
但是当我尝试用其他字符替换[
和]
时,它停止工作。例如,圆括号“()
”不起作用:
(font-lock-add-keywords nil '(("\\(\\(.*\\)\\)"
1 font-lock-function-name-face prepend)))
尝试单引号、双引号或反引号等也不起作用。我完全不熟悉lisp语法——我做错了什么?还有:有没有办法将括号中的字符包含在表达式中?您将正则表达式和正则字符串混合在一起 试试这些:
;;方括号-转义第一个,这样就不会得到[…]regexp
(字体锁定添加关键字nil'(“\\(\\[.*]\\)”
1字体锁定关键字(字体前缀)))
;; 括号-不要转义要匹配的括号!
(字体锁定添加关键字nil'(“\\(.*)\\)”
1字体锁定关键字(字体前缀)))
;; 引号-单转义,因此不会打断字符串:
(字体锁定添加关键字nil'((“\\(\”*\“\\))
1字体锁定关键字(字体前缀)))
;; 其他字符-不是正则表达式,因此不要转义:
(字体锁定添加关键字nil'(“\\('.'\\)”
1字体锁定关键字(字体前缀)))
(字体锁定添加关键字nil'(“\\(\\)”
1字体锁定关键字(字体前缀)))
Emacs有自己的正则表达式语法。例如,不能转义文本paren。您可以在Thank@abo abo上阅读更多内容,但我在理解emacs regexp的文档时遇到了很多困难;例如,为什么这里需要两个反斜杠:\\[
?因为它是一个字符串,实际上是一个反斜杠。反斜杠在字符串中转义,以允许例如\n
。因此regexp是\[
。它的意思是文本[
,而不是启动[]
。谢谢!这非常有用!