2.4.3.2 通用转义语法

除了特定的转义序列,Emacs提供了几种转义语法,用来表示非ASCII字符。

  1. 使用Unicode名称。?\N{NAME} 表示名称为NAME的Unicode字符。例如,'?\N{LATIN SMALL LETTER A WITH GRAVE}'和 等价,它们都表示 U+00E0 这个Unicode字符。为了简化多行字符串输入,你可以使用非空序列的名称来替代一些空白符(比如换行符)。

  2. 使用Unicode值。?\N{U+X} 表示指向X位置的Unicode字符,其中X为十六进制数字。同样的,?\uxxxx和 ?\uxxxxxxxx 分别表示指向位置xxxx和位置xxxxxxxx的Unicode,其中x为单十六进制数。比如,?\N{U+E0},?\u00e0和?\u000000e0和'?\N{LATIN SMALL LETTER A WITH GRAVE}'和 等价。Unicode标准中定义最大值为'U+10ffff',因此如果你使用了更大的位置,Emacs将会抛出一个错误。

  3. 使用十六进制码。十六进制转义序列包含一个反斜杠,'x',以及十六进制字符码。比如,'?\x41'表示字符A,'?\x1'表示字符C-a,?\xe0表示字符à (重音a)。你可以使用该方法表示任何字符。

  4. 使用八进制码。八进制转义序列包含一个反斜杠加上三个八进制数字。比如,'?\101'表示字符A,'?\001'表示字符C-a,'?\002'表示字符C-b。这个方法最多只能表示到八进制代码777位置的字符。

这些转义序列同样可以在字符串中使用。

最后更新于