Удаление окон
Удаление окна удаляет его из дерева окон фрейма. Если окно является активным, оно исчезает с экрана. Если окно является внутренним, его дочерние окна также удаляются.
Даже после удаления окна оно продолжает существовать как объект 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) во фрейме.
Окно с параметром
nilno-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