字体锁定模式可使用任意外观进行高亮,但 Emacs 专门定义了若干外观供字体锁定高亮文本使用。 这些字体锁定外观如下所列。 主模式也可在字体锁定模式之外用它们进行语法高亮(see 主模式编码规范)。
这些符号既是外观名,也是变量,其默认值为符号自身。
例如 font-lock-comment-face 的默认值即为 font-lock-comment-face。
下列外观按典型用途说明,并按醒目程度从高到低排列。 若某模式的语法分类与用途描述不完全匹配,可按该顺序作为分配依据。
font-lock-warning-face ¶用于异常结构(例如 Emacs Lisp 符号中未转义的易混淆引号,如 ‘‘foo’), 或会大幅改变其他文本含义的结构,如 Emacs Lisp 中的 ‘;;;###autoload’ 和 C 语言中的 ‘#error’。
font-lock-function-name-face ¶用于被定义或声明的函数名。
font-lock-function-call-face ¶用于被调用的函数名。该外观默认继承自 font-lock-function-name-face。
font-lock-variable-name-face ¶用于被定义或声明的变量名。
font-lock-variable-use-face ¶用于被引用的变量名。该外观默认继承自 font-lock-variable-name-face。
font-lock-keyword-face ¶用于具有特殊语法意义的关键字,如 C 语言中的 ‘for’ 和 ‘if’。
font-lock-comment-face ¶用于注释。
font-lock-comment-delimiter-face ¶用于注释定界符,如 C 语言中的 ‘/*’ 和 ‘*/’。
在多数终端上,该外观继承自 font-lock-comment-face。
font-lock-type-face ¶用于用户自定义数据类型名。
font-lock-constant-face ¶用于常量名,如 C 语言中的 ‘NULL’。
font-lock-builtin-face ¶用于内置函数名。
font-lock-preprocessor-face ¶用于预处理指令。该外观默认继承自 font-lock-builtin-face。
font-lock-string-face ¶用于字符串常量。
font-lock-doc-face ¶用于程序代码中以特殊格式注释或字符串嵌入的文档内容。
该外观默认继承自 font-lock-string-face。
font-lock-doc-markup-face ¶用于使用 font-lock-doc-face 的文本中的标记元素。
通常用于代码内嵌文档中的标记结构,遵循 Haddock、Javadoc 或 Doxygen 等规范。
该外观默认继承自 font-lock-constant-face。
font-lock-negation-char-face ¶用于容易被忽略的取反字符。
font-lock-escape-face ¶用于字符串中的转义序列。
该外观默认继承自 font-lock-regexp-grouping-backslash。
以下为 Python 示例,其中使用了转义序列 \n:
print('Hello world!\n')
font-lock-number-face ¶用于数字。
font-lock-operator-face ¶用于运算符。
font-lock-property-name-face ¶用于对象属性,如结构体中字段的声明。
该外观默认继承自 font-lock-variable-name-face。
font-lock-property-use-face ¶用于对象属性的使用,如结构体字段的访问。
该外观默认继承自 font-lock-property-name-face。
示例:
typedef struct
{
int prop;
// ^ property
} obj;
int main()
{
obj o;
o.prop = 3;
// ^ property
}
font-lock-punctuation-face ¶用于括号、定界符等标点符号。
font-lock-bracket-face ¶用于各类括号(如 ()、[]、{})。
该外观默认继承自 font-lock-punctuation-face。
font-lock-delimiter-face ¶用于语句定界符(如 ;、:、,)。
该外观默认继承自 font-lock-punctuation-face。
font-lock-misc-punctuation-face ¶用于非括号、非定界符的其他标点。
该外观默认继承自 font-lock-punctuation-face。