Параметры окон
В этом разделе описаны параметры окон, которые можно использовать для связывания дополнительной информации с окнами.
- Функция: window-parameter window parameter
Эта функция возвращает значение parameter для window. По умолчанию используется выбранное окно. Если для window не задано значение parameter, функция возвращает
nil.
- Функция: window-parameters &optional window
Эта функция возвращает все параметры window и их значения. По умолчанию используется выбранное окно. Возвращаемое значение — либо
nil, либо ассоциативный список, элементы которого имеют вид(parameter . value).
- Функция: set-window-parameter window parameter value
Эта функция задаёт для window значение parameter, равное value, и возвращает value. По умолчанию используется выбранное окно.
По умолчанию функции сохранения и восстановления конфигураций окон или состояний окон (см. Конфигурации окон) не учитывают параметры окон. Это означает, что при изменении значения параметра в теле 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(см. Циклический порядок окон). По умолчанию он равенtдля окон подсказок (см. Основные понятия об окнах Emacs). Используйтеwindow-no-other-p(см. Циклический порядок окон), чтобы проверить, применим ли он к определённому окну. -
clone-of -
Этот параметр указывает окно, на основе которого было клонировано данное окно. По умолчанию он является постоянным, поэтому сохраняется с помощью
window-state-getи устанавливается с помощьюwindow-state-put(см. Конфигурации окон). -
window-preserved-size -
Этот параметр задаёт буфер, направление, где
nilозначает вертикальное, аt— горизонтальное, и размер в пикселях. Если это окно отображает указанный буфер, а его размер в заданном направлении равен размеру, указанному этим параметром, Emacs попытается сохранить размер окна в этом направлении. Этот параметр устанавливается и обновляется функциейwindow-preserve-size(см. Сохранение размеров окон). quit-restore-
quit-restore-prev -
Эти параметры устанавливаются функциями отображения буферов (см. Выбор окна для отображения буфера) и учитываются функцией
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 -
Значение этого параметра — конс-ячейка, у которой CAR и CDR, если они не равны
nil, задают минимальные значения (в столбцах) левого и правого полей этого окна (см. Отображение в полях). Если этот параметр задан, Emacs будет использовать эти значения вместо фактической ширины полей при определении того, можно ли разделить окно или уменьшить его по горизонтали.Emacs никогда автоматически не корректирует поля окна после его разделения или изменения размера. За корректировку полей этого окна, а также полей любого нового окна, наследующего поля этого окна при разделении, полностью отвечает приложение, задающее этот параметр. Для этой цели следует использовать и
window-configuration-change-hook, иwindow-size-change-functions(см. Хуки прокрутки и изменения окон).Этот параметр появился в Emacs версии 25.1 для поддержки приложений, использующих широкие поля для центрирования текста буфера в окне. Его следует применять с осторожностью и исключительно такими приложениями. В будущих версиях Emacs он может быть заменён улучшенным решением.
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/Window-Parameters.html