В этом разделе описываются низкоуровневые функции для просмотра и установки содержимого окон. См. Переключение на буфер в окне для описания функций более высокого уровня, отображающих конкретный буфер в окне.
Эта функция возвращает буфер, который отображается в окне window. Если
window опущен или равен nil, по умолчанию используется выбранное
окно. Если window является внутренним окном, эта функция возвращает
nil.
Эта функция заставляет окно window отображать buffer-or-name.
window должно быть активным окном; если оно равно nil, по умолчанию
используется выбранное окно. buffer-or-name должно быть буфером или
именем существующего буфера. Эта функция не изменяет выбранное
окно и непосредственно не изменяет текущий буфер (см. Текущий буфер). Её возвращаемое значение — nil.
Если окно window строго закреплено за буфером и buffer-or-name не указывает на этот буфер, данная функция вызывает ошибку. См. Закреплённые окна.
По умолчанию эта функция сбрасывает позицию окна window, отображаемые
поля, ширину фринджей и настройки полос прокрутки на основе локальных
переменных указанного буфера. Однако если необязательный аргумент
keep-margins не равен nil, она оставляет отображаемые
поля, фринджи и настройки полос прокрутки окна window без изменений.
При написании приложения обычно следует использовать
display-buffer (см. Выбор окна для отображения буфера) или функции более высокого уровня,
описанные в Переключение на буфер в окне, вместо прямого вызова
set-window-buffer.
Эта функция запускает window-scroll-functions, а затем
window-configuration-change-hook. См. Хуки для прокрутки окон и изменений.
Эта буферно-локальная переменная хранит количество раз, которое буфер был
отображён в окне. Она увеличивается при каждом вызове
set-window-buffer для этого буфера.
Эта буферно-локальная переменная хранит время, когда буфер был последний раз
отображён в окне. Значение равно nil, если буфер ни разу
не отображался. Она обновляется при каждом вызове
set-window-buffer для этого буфера значением, возвращаемым
current-time (см. Время суток).
Эта функция возвращает первое окно, отображающее buffer-or-name,
в циклическом порядке окон, начиная с выбранного окна
(см. Циклический порядок окон). Если такое окно отсутствует, возвращаемое
значение — nil.
buffer-or-name должно быть буфером или именем буфера; если
опущено или равно nil, по умолчанию используется текущий буфер.
Необязательный аргумент all-frames определяет, какие окна
рассматривать:
t — рассматривать окна на всех существующих фреймах.
visible — рассматривать окна на всех видимых фреймах.
Обратите внимание, что эти значения немного отличаются от значений
аргумента all-frames для next-window (см. Циклический порядок окон). Эта функция может быть изменена в будущей версии Emacs
для устранения этого расхождения.
Эта функция возвращает список всех окон, в которых в данный момент отображается
buffer-or-name. buffer-or-name должно быть буфером или
именем существующего буфера. Если опущено или равно nil, по умолчанию
используется текущий буфер. Если в выбранном в данный момент окне отображается
buffer-or-name, оно будет первым в списке, возвращаемом этой функцией.
Аргументы minibuf и all-frames имеют те же
значения, что и в функции next-window (см. Циклический порядок окон). Обратите внимание, что аргумент all-frames не
ведёт себя точно так же, как в get-buffer-window.
Эта команда заменяет buffer-or-name на некоторый другой буфер во
всех окнах, отображающих его. buffer-or-name должно быть буфером или
именем существующего буфера; если опущено или равно nil, по умолчанию
используется текущий буфер.
Заменяющий буфер в каждом окне выбирается с помощью
switch-to-prev-buffer (см. История окон). За
исключением боковых окон (см. Боковые окна), любое закреплённое окно,
отображающее buffer-or-name, удаляется, если это возможно (см. Закреплённые окна). Если такое окно является единственным окном на своём фрейме и
на том же терминале есть другие фреймы, фрейм также удаляется.
Если закреплённое окно является единственным окном на единственном фрейме на
своём терминале, буфер заменяется в любом случае.