以下为语法类别表,包含标识字符、含义与使用示例。
用于分隔符号与单词的字符。 空白字符通常无其他语法意义, 多个连续空白字符在语法上等价于单个空白。 空格、制表符、换页符在几乎所有主模式中均被归类为空白。
该语法类别可使用 ‘ ’ 或 ‘-’ 标识,二者等效。
自然语言中构成单词的字符,通常用于程序的变量名与命令名。 所有大小写字母与数字一般均为单词组成字符。
与单词组成字符一同构成变量名、命令名的额外字符。 例如 Lisp 模式中的 ‘$&*+-_<>’, 虽不属于英文单词,却可作为符号名的一部分。 标准 C 语言中,符号唯一合法的非单词组成字符为下划线 ‘_’。
自然语言中的标点,或编程语言中分隔符号的字符。 部分编程语言模式(如 Emacs Lisp 模式)无此类字符, 因为非单词/符号组成字符均另有他用。 其他模式(如 C 模式)将运算符归类为标点。
成对使用、用于包裹语句或表达式的字符。 分组以左括号开始,右括号结束。 每个左括号对应唯一的右括号,反之亦然。 通常输入右括号时,Emacs 会短暂高亮匹配的左括号。See 括号闪烁。
自然语言与 C 代码中的括号对为 ‘()’、‘[]’、‘{}’。 Emacs Lisp 中列表与向量的分隔符 ‘()’、‘[]’ 均归类为括号字符。
用于界定字符串常量的字符, 同一字符串首尾使用相同引号,且字符串不嵌套。
Emacs 解析机制会将字符串视为单个整体, 字符串内字符的常规语法含义会被忽略。
Lisp 模式有两种字符串引号:双引号 ‘"’ 与竖线 ‘|’。 ‘|’ 不用于 Emacs Lisp,但用于 Common Lisp。 C 语言同样有两种:双引号用于字符串,单引号 ‘'’ 用于字符常量。
纯文本无字符串引号, 避免引号使内部字符失去常规语法属性。
用于开启转义序列的字符,常见于字符串与字符常量。 ‘\’ 在 C 与 Lisp 中均属于该类别。 (C 中仅字符串内如此使用,但全程按此处理无任何问题。)
若 words-include-escapes 非 nil,
此类字符会被计入单词。See 按单词移动。
用于使后续字符失去常规语法意义的引用符。 与转义字符不同,它仅影响紧随其后的单个字符。
若 words-include-escapes 非 nil,
此类字符会被计入单词。See 按单词移动。
该类别用于 TeX 模式中的反斜杠。
与字符串引号类似,但不会抑制分隔符内部字符的语法属性。 目前仅 TeX 模式使用此类分隔符, 即用于进入/退出数学模式的 ‘$’。
紧邻表达式时会被视为其一部分的语法运算符字符。 Lisp 模式中包括单引号 ‘'’(引用)、逗号 ‘,’(宏)与 ‘#’(数据类型读取语法)。
各类语言中界定注释的字符。自然文本无注释字符。 Lisp 中分号 ‘;’ 开启注释,换行/换页符结束注释。
该语法类别不指定具体规则, 而是从父语法表中继承该字符的语法定义。
(该类别又称 “注释围栏(comment-fence)”。) 用于开启/结束特殊注释的字符。 任意 通用注释分隔符均可匹配 任意 同类分隔符, 但不能匹配普通注释起始/结束符。
该类别主要用于 syntax-table 文本属性(see 语法属性)。
为一段文本的首尾字符设置该语法属性,即可将其标记为注释。
(该类别又称 “字符串围栏(string-fence)”。) 用于开启/结束字符串的字符。 与普通字符串引号不同, 任意 通用字符串分隔符均可匹配 任意 同类分隔符, 但不匹配普通字符串引号。
该类别主要用于 syntax-table 文本属性(see 语法属性)。
为一段文本的首尾字符设置该语法属性,即可将其标记为字符串常量。