42.23.5 Отображение глиф-бесплатных символов

Glyphless characters — это символы, которые отображаются особым образом, например, в виде ячейки, содержащей шестнадцатеричный код, вместо того чтобы отображаться буквально. К ним относятся символы, которые явно определены как глиф-бесплатные, а также символы, для которых нет доступного шрифта (в графическом режиме), и символы, которые не могут быть закодированы системой кодирования терминала (в текстовом терминале).

Минорный режим glyphless-display-mode может использоваться для удобного переключения отображения глиф-бесплатных символов в текущем буфере. Если этот режим включен, все глиф-бесплатные символы отображаются в виде ячеек, в которых отображаются аббревиатуры их имен.

Переменная: glyphless-char-display

Для более детального (и глобального) контроля можно использовать эту переменную. Значение этой переменной — это таблица символов, которая определяет глиф-бесплатные символы и то, как они отображаются. Каждая запись должна быть одним из следующих методов отображения:

nil

Отобразить символ обычным образом.

zero-width

Не отображать символ.

thin-space

Отобразить тонкое пространство, шириной 1 пиксель в графическом режиме или 1 символ в текстовом терминале.

empty-box

Отобразить пустую ячейку.

hex-code

Отобразить ячейку, содержащую кодовую точку Unicode символа в шестнадцатеричной записи.

строка ASCII

Отобразить ячейку, содержащую эту строку. Строка должна содержать не более 6 символов ASCII. В качестве исключения, если строка содержит только один символ, в терминалах в текстовом режиме этот символ будет отображен без ячейки; это позволяет рассматривать такие «аббревиатуры» как символы замены для символов, которые не могут быть отображены терминалом.

составной элемент (graphical . text)

Отобразить с graphical в графическом режиме и с text в текстовом терминале. И graphical, и text должны быть одним из описанных выше методов отображения.

Методы отображения thin-space, empty-box, hex-code и строки ASCII рисуются с помощью шрифта glyphless-char. В текстовых терминалах ячейка эмулируется квадратными скобками, «[]».

Таблица символов имеет одну дополнительную ячейку, которая определяет, как отображать любой символ, который не может быть отображен ни одним из доступных шрифтов или не может быть закодирован системой кодирования терминала. Ее значение должно быть одним из вышеуказанных методов отображения, за исключением zero-width.

Если символ имеет не-nil запись в активной таблице отображения, таблица отображения вступает в силу; в этом случае Emacs вообще не обращается к glyphless-char-display.

Пользовательский вариант: glyphless-char-display-control

Этот пользовательский вариант предоставляет удобный способ установки glyphless-char-display для групп похожих символов. Не устанавливайте его значение напрямую из кода Lisp; значение вступает в силу только через пользовательскую функцию :set (см. Определение переменных настройки), которая обновляет glyphless-char-display.

Его значение должно быть alist элементами (group . method), где group — это символ, указывающий группу символов, а method — это символ, указывающий, как их отображать.

group должен быть одним из следующих:

c0-control

Управляющие символы ASCII U+0000 по U+001F, исключая символы новой строки и табуляции (обычно отображаются как последовательности экранирования, например, «^A»; см. Как отображается текст в Справочник GNU Emacs).

c1-control

Не-ASCII, непечатаемые символы U+0080 по U+009F (обычно отображаются как восьмеричные последовательности экранирования, например, «\230»).

format-control

Символы общей категории Unicode [Cf], такие как U+200E LEFT-TO-RIGHT MARK, но исключая символы, имеющие графические изображения, такие как U+00AD SOFT HYPHEN.

bidi-control

Это подмножество format-control, но включает только символы, связанные с управлением двунаправленным форматированием, такие как U+2069 POP DIRECTIONAL ISOLATE и U+202A LEFT-TO-RIGHT EMBEDDING. См. Двунаправленное отображение.

Символы общей категории Unicode [Cf], такие как U+200E LEFT-TO-RIGHT MARK, но исключая символы, имеющие графические изображения, такие как U+00AD SOFT HYPHEN.

variation-selectors

Unicode VS-1 по VS-256 (U+FE00 по U+FE0F и U+E0100 по U+E01EF), которые используются для выбора между различными глифами для одних и тех же кодовых точек (обычно эмодзи).

no-font

Символы, для которых нет подходящего шрифта, или которые не могут быть закодированы системой кодирования терминала, или для которых в текстовом терминале нет глифов.

Символ method должен быть одним из zero-width, thin-space, empty-box или hex-code. Они имеют те же значения, что и в glyphless-char-display выше.