在whitespace-mode
(EmacsWiki上的whitespace.el
)中,有一个名为whitespace-display-mappings
的变量。该变量确定在不同的上下文中应该如何呈现某些特殊字符。它可以有各种默认值,具体取决于您的环境,但一个默认值为:
'((space-mark ?\ [?\u00B7] [?.]) ; space - centered dot
(space-mark ?\xA0 [?\u00A4] [?_]) ; hard space - currency
(space-mark ?\x8A0 [?\x8A4] [?_]) ; hard space - currency
(space-mark ?\x920 [?\x924] [?_]) ; hard space - currency
(space-mark ?\xE20 [?\xE24] [?_]) ; hard space - currency
(space-mark ?\xF20 [?\xF24] [?_]) ; hard space - currency
(newline-mark ?\n [?$ ?\n]) ; eol - dollar sign
(tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t])) ; tab - left quote mark
?\
,?\xA0
,?\n
和?\t
的映射是直截了当的,因为它们分别映射了普通空格,nobreak-spaces,换行符和制表符。
然而,字符?\x8A0
,?\x9A0
,?\xE20
和?\xF20
是神秘的。它们分别代表Devanganari/<not assigned>
,Bengali/BENGALI LETTER TTHA
,Thai/THAI CHARACTER PHO SAMPHAO
和Tibetan/TIBETAN DIGIT ZERO
。他们映射的人物也很神秘;默认情况下,它们只是在Unicode块中“稍后”映射到4个字符,这没有任何意义。
字符可能是由Emacs制作的哨兵,代表其他一些“特殊”字符,但这没有任何意义,因为它不可能映射,例如TIBETAN DIGIT ZERO
对于那种情况下的其他角色。
这些字符及其映射的字符实际代表什么?
答案 0 :(得分:3)
此代码最有可能是为Emacs&lt; 23编写的,当时Emacs中字符的内部编码不是Unicode。因此,这些字符实际上是各种不同的NBSP(一个用于拉丁语1,一个用于拉丁语-2,...)。