Spec-Zone.ru › Elisp

Параметры окна

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

Функция: window-parameter параметр окна

Эта функция возвращает значение параметра parameter для окна window. По умолчанию window — это выбранное окно. Если для окна window нет значения параметра parameter, эта функция возвращает nil.

Функция: window-parameters &optional window

Эта функция возвращает все параметры окна window и их значения. По умолчанию window — это выбранное окно. Возвращаемое значение — либо nil, либо список ассоциаций, элементы которого имеют вид (parameter . value).

Функция: set-window-parameter окно параметр значение

Эта функция устанавливает значение параметра parameter окна window в value и возвращает value. По умолчанию window — это выбранное окно.

По умолчанию функции, сохраняющие и восстанавливающие конфигурации или состояния окон (см. Конфигурации окон), не учитывают параметры окон. Это означает, что при изменении значения параметра внутри тела save-window-excursion, предыдущее значение не восстанавливается при выходе из макроса. Это также означает, что при восстановлении через window-state-put состояния окна, сохраненного ранее window-state-get, все клонированные окна имеют параметры, сброшенные до nil. Следующая переменная позволяет переопределить стандартное поведение:

Переменная: window-persistent-parameters

Эта переменная представляет собой список ассоциаций, определяющих, какие параметры сохраняются функциями current-window-configuration и window-state-get, и впоследствии восстанавливаются set-window-configuration и window-state-put. См. Конфигурации окон.

Символ CAR каждого элемента этого списка указывает параметр. Символ CDR должен быть одним из следующих:

nil

Это значение означает, что параметр не сохраняется ни функциями window-state-get ни current-window-configuration.

t

Это значение указывает, что параметр сохраняется функциями current-window-configuration и (при условии, что его аргумент writable равен nil) функцией window-state-get.

writable

Это означает, что параметр сохраняется безусловно обеими функциями current-window-configuration и window-state-get. Это значение не следует использовать для параметров, значения которых не имеют синтаксиса чтения. В противном случае вызов window-state-put в другой сессии может завершиться ошибкой invalid-read-syntax.

Некоторые функции (в частности, delete-window, delete-other-windows и split-window), могут вести себя особым образом, когда окно, указанное их аргументом window, имеет параметр, имя которого совпадает с именем функции. Вы можете переопределить такое специальное поведение, связав следующую переменную с не-nil значением:

Переменная: ignore-window-parameters

Если эта переменная имеет не-nil значение, некоторые стандартные функции не обрабатывают параметры окон. В настоящее время функции, затронутые этим, — split-window, delete-window, delete-other-windows, и other-window.

Приложение может связать эту переменную с не-nil значением вокруг вызовов этих функций. В этом случае приложение несет полную ответственность за правильное присвоение параметров всех вовлеченных окон при выходе из этой функции.

В настоящее время код управления окнами использует следующие параметры:

delete-window

Этот параметр влияет на выполнение delete-window (см. Удаление окон).

delete-other-windows

Этот параметр влияет на выполнение delete-other-windows (см. Удаление окон).

no-delete-other-windows

Этот параметр отмечает окно как не подлежащее удалению функцией delete-other-windows (см. Удаление окон).

split-window

Этот параметр влияет на выполнение split-window (см. Разделение окон).

other-window

Этот параметр влияет на выполнение other-window (см. Циклическая упорядоченность окон).

no-other-window

Этот параметр отмечает окно как не выбираемое функцией other-window (см. Циклическая упорядоченность окон).

clone-of

Этот параметр указывает окно, с которого было выполнено клонирование. Он устанавливается функцией window-state-get (см. Конфигурации окон).

window-preserved-size

Этот параметр указывает буфер, направление (nil — вертикальное, t — горизонтальное) и размер в пикселях. Если это окно отображает указанный буфер, и его размер в указанном направлении равен размеру, указанному в этом параметре, Emacs попытается сохранить размер этого окна в указанном направлении. Этот параметр устанавливается и обновляется функцией window-preserve-size (см. Сохранение размеров окна).

quit-restore

Этот параметр устанавливается функциями отображения буферов (см. Выбор окна) и используется функцией quit-restore-window (см. Выход из окон). Это список из четырех элементов, см. описание quit-restore-window в Выход из окон для подробностей.

window-side
window-slot

Эти параметры используются внутренне для реализации боковых окон (см. Боковые окна).

window-atom

Этот параметр используется внутренне для реализации атомарных окон, см. Атомарные окна.

mode-line-format

Этот параметр заменяет значение локальной для буфера переменной mode-line-format (см. Основы строки режима) буфера этого окна всякий раз, когда это окно отображается. Символ none означает подавление отображения строки режима для этого окна. Отображение и содержимое строки режима в других окнах, отображающих этот буфер, не изменяются.

header-line-format

Этот параметр заменяет значение локальной для буфера переменной header-line-format (см. Основы строки режима) буфера этого окна всякий раз, когда это окно отображается. Символ none означает подавление отображения строки заголовка для этого окна. Отображение и содержимое строки заголовка в других окнах, отображающих этот буфер, не изменяются.

tab-line-format

Этот параметр заменяет значение локальной для буфера переменной tab-line-format (см. Основы строки режима) буфера этого окна всякий раз, когда это окно отображается. Символ none означает подавление отображения строки вкладки для этого окна. Отображение и содержимое строки вкладки в других окнах, отображающих этот буфер, не изменяются.

min-margins

Значение этого параметра — cons-ячейка, чьи CAR и CDR, если не nil, указывают минимальные значения (в колонках) для левой и правой границы этого окна (см. Границы отображения. При наличии, Emacs будет использовать эти значения вместо фактических размеров границ для определения возможности разделения или уменьшения окна по горизонтали.

Emacs никогда не автоматически подстраивает границы любого окна после его разделения или изменения размера. Полная ответственность за настройку границ этого окна, а также границ любого нового окна, унаследовавшего границы этого окна из-за разделения, лежит на приложении, устанавливающем этот параметр. Для этой цели следует использовать как window-configuration-change-hook, так и window-size-change-functions (см. Обработчики окон).

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

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/Window-Parameters.html

Spec-Zone.ru

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