В этом разделе описываются параметры окон, которые можно использовать для связывания дополнительной информации с окнами.
Эта функция возвращает значение параметра для окна. По
умолчанию для окна используется выбранное окно. Если окно не
имеет значения для параметра, эта функция возвращает nil.
Эта функция возвращает все параметры окна и их значения.
По умолчанию для окна используется выбранное окно. Возвращаемое
значение — либо nil, либо ассоциативный список, элементы которого
имеют вид (параметр . значение).
Эта функция устанавливает значение параметра для окна равным значению и возвращает значение. По умолчанию для окна используется выбранное окно.
По умолчанию функции, которые сохраняют и восстанавливают конфигурации
окон или состояния окон (см. Конфигурации окон), не учитывают
параметры окон. Это означает, что когда вы изменяете значение
параметра внутри тела save-window-excursion, предыдущее
значение не восстанавливается при выходе из этого макроса. Это также
означает, что когда вы восстанавливаете с помощью window-state-put
состояние окна, сохранённое ранее window-state-get, все клонированные
окна получают параметры, сброшенные в nil. Следующая переменная позволяет
вам переопределить стандартное поведение:
Эта переменная является ассоциативным списком, определяющим, какие
параметры сохраняются функциями 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:
Если эта переменная не равна 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 он может быть заменён на улучшенное решение.