Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
emacs主要模式字符之间的字体锁定(括号、引号等)_Emacs_Syntax_Lisp_Syntax Highlighting_Mode - Fatal编程技术网

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 '(("\\(\\(.*\

我正在尝试设置一个emacs主模式,它基本上只是以不同的颜色突出显示大量不同字符之间的文本。我用方括号表示:

(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是
\[
。它的意思是文本
[
,而不是启动
[]
。谢谢!这非常有用!