Spec-Zone.ru › Elisp

Отображение в полях отступа

Буфер может иметь пустые области, называемые полями отступа слева и справа. Обычный текст никогда не отображается в этих областях, но вы можете поместить в них элементы с помощью свойства display. В настоящее время нет способа сделать текст или изображения в поле отступа чувствительными к нажатию мыши.

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

Спецификация отображения поля отступа выглядит как ((margin right-margin) spec) или ((margin left-margin) spec). Здесь spec — это другая спецификация отображения, которая указывает, что отображать в поле отступа. Обычно это строка текста для отображения или описание изображения.

Чтобы отобразить что-либо в поле отступа в связи с определенным текстом буфера, не изменяя или не препятствуя отображению этого текста, поместите свойство before-string на текст и поместите спецификацию отображения поля отступа в содержимое строки перед ней.

Обратите внимание, что если строка, отображаемая в поле отступа, не указывает шрифт, её шрифт определяется по тем же правилам и приоритетам, что и для строк, отображаемых в области текста (см. Отображение шрифтов). Если это приводит к нежелательному «просачиванию» шрифтов в поле отступа, убедитесь, что для строки указан явный шрифт.

Прежде чем поля отступа смогут отобразить что-либо, им необходимо задать ненулевую ширину. Обычно это делается путём установки этих переменных:

Переменная: left-margin-width

Эта переменная задаёт ширину левого поля отступа в единицах ширины ячейки символа (также «столбец»). Она локальна для всех буферов. Значение nil означает отсутствие левого поля отступа.

Переменная: right-margin-width

Эта переменная задаёт ширину правого поля отступа в единицах ширины ячейки символа. Она локальна для всех буферов. Значение nil означает отсутствие правого поля отступа.

Установка этих переменных немедленно не влияет на окно. Эти переменные проверяются при отображении нового буфера в окне. Таким образом, вы можете заставить изменения вступить в силу, вызвав set-window-buffer. Не используйте эти переменные, чтобы определить текущую ширину левого или правого поля отступа. Вместо этого используйте функцию window-margins.

Вы также можете задать ширину полей отступа непосредственно.

Функция: set-window-margins окно слева &опционально справа

Эта функция задаёт ширину полей отступа для окна window в единицах ширины ячейки символа. Аргумент left управляет левым полем отступа, а right — правым полем отступа (по умолчанию 0).

Если окно window недостаточно велико для размещения полей отступа заданной ширины, поля отступа window останутся без изменений.

Заданные здесь значения могут быть позже переопределены вызовом set-window-buffer (см. Буферы и окна) для window с аргументом keep-margins nil или опущением этого аргумента.

Функция: window-margins &опционально окно

Эта функция возвращает ширину левого и правого полей отступа окна window как cons-ячейку вида (left . right). Если одна из областей отступа не существует, её ширина возвращается как nil; если не существует ни одного из полей отступа, функция возвращает (nil). Если window — nil, используется выбранное окно.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Display-Margins.html

Spec-Zone.ru

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