В whitespace-mode
(whitespace.el
в EmacsWiki) есть переменная с именем 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
являются прямыми, потому что они отображают обычные пробелы, неразрывные пробелы, новые строки и табуляции соответственно.
Однако символы ?\x8A0
, ?\x9A0
, ?\xE20
и ?\xF20
загадочны. Они представляют Devanganari/<not assigned>
, Bengali/BENGALI LETTER TTHA
, Thai/THAI CHARACTER PHO SAMPHAO
и Tibetan/TIBETAN DIGIT ZERO
соответственно. Персонажи, на которых они сопоставляются, также загадочны; по умолчанию они просто отображаются на 4 символа «позже» в блоке Unicode, что не имеет смысла.
Символы могут быть часовыми, созданными Emacs, которые представляют какие-то другие «специальные» символы, но это не имеет смысла, потому что было бы невозможно сопоставить, например. TIBETAN DIGIT ZERO
на какой-либо другой символ в этом случае.
Что на самом деле представляют эти символы и символы, которые они отображают?