Spec-Zone.ru › Elisp

Удаление окон

Удаление окна удаляет его из дерева окон фрейма. Если окно является активным, оно исчезает с экрана. Если окно является внутренним, его дочерние окна также удаляются.

Даже после удаления окна оно продолжает существовать как объект Lisp, пока на него не исчезнут все ссылки. Удаление окна можно отменить, восстановив сохраненную конфигурацию окна (см. Конфигурации окон).

Команда: delete-window &optional window

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

Если удаление окна оставит не более одного окна в дереве окон (например, если это единственное активное окно во фрейме) или все оставшиеся окна во фрейме window являются боковыми окнами (см. Боковые окна), генерируется ошибка. Если window является частью атомарного окна (см. Атомарные окна), эта функция пытается удалить корень этого атомарного окна.

По умолчанию место, занимаемое window, отдаётся одному из его соседних окон-братьев, если таковые имеются. Однако, если переменная window-combination-resize не nil, место распределяется пропорционально между оставшимися окнами в той же комбинации окон. См. Перекомбинирование окон.

Поведение этой функции может изменяться параметрами окна window, при условии, что переменная ignore-window-parameters является nil. Если значение параметра окна delete-window равно t, эта функция игнорирует все остальные параметры окна. В противном случае, если значение параметра окна delete-window является функцией, эта функция вызывается с аргументом window вместо обычного действия delete-window. См. Параметры окон.

Когда delete-window удаляет выбранное окно своего фрейма, оно должно выбрать новое выбранное окно для этого фрейма. Следующий параметр позволяет настроить, какое окно будет выбрано.

Параметр пользователя: delete-window-choose-selected

Этот параметр позволяет указать, какое окно должно стать выбранным окном фрейма после того, как delete-window удалило ранее выбранное. Возможные варианты:

  • mru (по умолчанию) выбрать окно с наибольшим временем последнего использования во фрейме.
  • pos выбрать окно, содержащее координаты фрейма точки ранее выбранного окна во фрейме.
  • nil выбрать первое окно (окно, возвращаемое frame-first-window ) во фрейме.

Окно с параметром nil no-other-window выбирается только если все остальные окна во фрейме также имеют этот параметр, установленный на значение, отличное от nil.

Команда: delete-other-windows &optional window

Эта функция заставляет window заполнить свой фрейм, удаляя другие окна по необходимости. Если window опущено или nil, по умолчанию используется выбранное окно. Ошибка генерируется, если window является боковым окном (см. Боковые окна). Если window является частью атомарного окна (см. Атомарные окна), эта функция пытается заставить корень этого атомарного окна заполнить свой фрейм. Возвращаемое значение - nil.

Поведение этой функции может изменяться параметрами окна window, при условии, что переменная ignore-window-parameters равна nil. Если значение параметра окна delete-other-windows равно t, эта функция игнорирует все остальные параметры окна. В противном случае, если значение параметра окна delete-other-windows является функцией, эта функция вызывается с аргументом window вместо обычного действия delete-other-windows. См. Параметры окон.

Также, если ignore-window-parameters равно nil, эта функция не удаляет ни одно окно, у которого параметр no-delete-other-windows имеет значение, отличное от nil.

Команда: delete-windows-on &optional buffer-or-name frame

Эта функция удаляет все окна, отображающие buffer-or-name, вызвав delete-window для этих окон. buffer-or-name должен быть буфером или именем буфера; если опущено или nil, по умолчанию используется текущий буфер. Если нет окон, отображающих указанный буфер, функция ничего не делает. Если указанный буфер является минибуфером, генерируется ошибка.

Если существует выделенное окно, отображающее буфер, и это окно единственное в своём фрейме, эта функция также удаляет этот фрейм, если он не является единственным фреймом на терминале.

Необязательный аргумент frame определяет, на каких фреймах выполнять операцию:

  • nil означает, что операция выполняется на всех фреймах.
  • t означает, что операция выполняется на выбранном фрейме.
  • visible означает, что операция выполняется на всех видимых фреймах.
  • 0 означает, что операция выполняется на всех видимых или свёрнутых фреймах.
  • Фрейм означает, что операция выполняется на указанном фрейме.

Обратите внимание, что этот аргумент имеет другое значение, чем в других функциях, которые сканируют все активные окна (см. Циклическая упорядоченность окон). В частности, значения t и 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/Deleting-Windows.html

Spec-Zone.ru

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