Spec-Zone.ru › Elisp

Таблицы отображения

Таблица отображения — это специальная таблица символов (см. Таблицы символов) с подтипом display-table, которая используется для переопределения обычных соглашений об отображении символов. В этом разделе описывается, как создавать и проверять объект таблицы отображения, а также назначать ему элементы. В следующем разделе (см. Активная таблица отображения) описаны различные стандартные таблицы отображения и порядок их приоритета.

Функция: make-display-table

Эта функция создаёт и возвращает таблицу отображения. Изначально все элементы таблицы содержат nil.

Обычные элементы таблицы отображения индексируются кодами символов; элемент с индексом c указывает, как отображать символ с кодом c. Значением должно быть nil (что означает отображение символа c согласно обычным соглашениям об отображении; см. Обычные соглашения об отображении) или вектор кодов глифов (что означает отображение символа c в виде этих глифов; см. Глифы).

Предупреждение: если с помощью таблицы отображения изменить отображение символов новой строки, весь буфер будет отображаться как одна длинная строка.

В таблице отображения также есть шесть дополнительных слотов специального назначения. Ниже приведена таблица с их назначением; значение nil в любом слоте означает, что для этого слота используется значение по умолчанию, указанное ниже.

0

Глиф для конца усечённой экранной строки (по умолчанию — ‘$’). См. Глифы. На графических терминалах Emacs по умолчанию использует стрелки на полях для обозначения усечения, поэтому таблица отображения не действует, если не отключить поля (см. Поля окна в Руководстве GNU Emacs).

1

Глиф для конца перенесённой строки (по умолчанию — ‘\’). На графических терминалах Emacs по умолчанию использует изогнутые стрелки на полях для обозначения переноса, поэтому таблица отображения не действует, если не отключить поля.

2

Глиф, обозначающий символ, отображаемый в виде восьмеричного кода символа (по умолчанию — ‘\’).

3

Глиф, обозначающий управляющий символ (по умолчанию — ‘^’).

4

Вектор глифов, обозначающий наличие невидимых строк (по умолчанию — ‘...’). См. Выборочное отображение.

5

Глиф для отображения границы между окнами, расположенными рядом (по умолчанию — ‘|’). См. Разделение окон. Сейчас он действует только в текстовых терминалах; в графических терминалах, если поддерживаются и используются вертикальные полосы прокрутки, два окна разделяет полоса прокрутки, а если вертикальных полос прокрутки и разделителей нет (см. Разделители окон), Emacs обозначает границу тонкой линией.

6 to 11

Глифы для однолинейной рамки вокруг дочерних фреймов на терминале в следующем порядке: вертикальный, горизонтальный, нижний правый угол, нижний левый угол, верхний правый угол и верхний левый угол. Горизонтальный глиф также используется в качестве однолинейного разделителя меню tty.

12 to 17

Глифы для двухлинейной рамки в следующем порядке: вертикальный, горизонтальный, нижний правый угол, нижний левый угол, верхний правый угол и верхний левый угол. Горизонтальный глиф также используется в качестве однолинейного разделителя меню TTY; остальные глифы пока не используются.

Например, вот как создать таблицу отображения, которая имитирует эффект присваивания ctl-arrow значения, не равного nil (описание функции make-glyph-code см. в разделе Глифы):

(setq disptab (make-display-table))
(dotimes (i 32)
  (or (= i ?\t)
      (= i ?\n)
      (aset disptab i
            (vector (make-glyph-code ?^ 'escape-glyph)
                    (make-glyph-code (+ i 64) 'escape-glyph)))))
(aset disptab 127
      (vector (make-glyph-code ?^ 'escape-glyph)
              (make-glyph-code ?? 'escape-glyph)))
Функция: display-table-slot display-table slot

Эта функция возвращает значение дополнительного слота slot таблицы display-table. Аргумент slot может быть числом от 0 до 17 включительно или именем слота — символом.

Функция: set-display-table-slot display-table slot value

Эта функция записывает value в дополнительный слот slot таблицы display-table. Аргумент slot может быть числом от 0 до 17 включительно или именем слота — символом.

Допустимые символы — имена слотов: truncation, wrap, escape, control, selective-display, vertical-border, box-vertical, box-horizontal, box-down-right, box-down-left, box-up-right, box-up-left, box-double-vertical, box-double-horizontal, box-double-down-right, box-double-down-left, box-double-up-right, box-double-up-left.

Функция: describe-display-table display-table

Эта функция отображает описание таблицы отображения display-table в буфере справки.

Функция: standard-display-unicode-special-glyphs

Эта функция устанавливает в дополнительных слотах standard-display-table подходящие символы Юникода.

Команда: describe-current-display-table

Эта команда отображает описание текущей таблицы отображения в буфере справки.

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/Display-Tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API