Параметры окна
В этом разделе описываются параметры окна, которые можно использовать для добавления дополнительной информации к окнам.
- Функция: 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-sidewindow-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