Отображение безглифовых символов
Безглифовые символы — это символы, отображаемые особым образом, например в виде рамки с шестнадцатеричным кодом, а не буквально. К ним относятся символы, явно определённые как безглифовые, а также символы, для которых нет доступного шрифта (в графическом режиме), и символы, которые не могут быть закодированы кодировкой терминала (в текстовом терминале).
Для удобного переключения отображения безглифовых символов в текущем буфере можно использовать второстепенный режим 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.Его значением должен быть ассоциативный список элементов
(group . method), где group — символ, задающий группу символов, а method — символ, задающий способ их отображения.group должен иметь одно из следующих значений:
c0-control-
Управляющие символы ASCII от
U+0000доU+001F, за исключением символов новой строки и табуляции (обычно отображаются как escape-последовательности, например «^A»; см. Как отображается текст в Руководстве GNU Emacs). c1-control-
Непечатаемые символы, не относящиеся к ASCII, от
U+0080доU+009F(обычно отображаются как восьмеричные escape-последовательности, например «\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выше.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Glyphless-Chars.html