Spec-Zone.ru › Elisp

Окна минибуфера

Эти функции позволяют получить доступ к окнам минибуфера, выбрать их, проверить, активны ли они, и управлять их изменением размера.

Функция: minibuffer-window &optional frame

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

Обратите внимание, что окно минибуфера, используемое фреймом, необязательно должно быть частью этого фрейма — фрейм без собственного минибуфера обязательно использует окно минибуфера другого фрейма. Окно минибуфера фрейма без минибуфера может быть изменено, задав параметр фрейма minibuffer (см. Параметры буфера).

Функция: set-minibuffer-window window

Эта функция указывает window как окно минибуфера для использования. Это влияет на то, где отображается минибуфер, если вы вводите текст в него без вызова обычных команд минибуфера. Она не влияет на обычные функции ввода минибуфера, поскольку все они начинают с выбора окна минибуфера в соответствии с выбранным фреймом.

Функция: window-minibuffer-p &optional window

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

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

Функция: active-minibuffer-window

Эта функция возвращает окно текущего активного минибуфера или nil, если активного минибуфера нет.

Недостаточно определить, отображает ли данное окно текущий активный минибуфер, сравнивая его с результатом (minibuffer-window), потому что может быть более одного окна минибуфера, если есть более одного фрейма.

Функция: minibuffer-window-active-p window

Эта функция возвращает не-nil, если window отображает текущий активный минибуфер.

Следующие два параметра управляют тем, автоматически ли изменяются размеры окон минибуфера и насколько великими они могут стать в этом процессе.

Параметр пользователя: resize-mini-windows

Этот параметр определяет, автоматически ли изменяются размеры окон минибуфера. Значение по умолчанию равно grow-only, что означает, что окно минибуфера по умолчанию автоматически расширяется для размещения отображаемого текста и сжимается до одной строки, как только минибуфер становится пустым. Если значение равно t, Emacs всегда будет пытаться подогнать высоту окна минибуфера к отображаемому тексту (с минимальной высотой в одну строку). Если значение равно nil, окно минибуфера никогда не изменяет размер автоматически. В этом случае для изменения высоты можно использовать команды изменения размера окна (см. Изменение размера окон).

Параметр пользователя: max-mini-window-height

Этот параметр задает максимальную высоту для автоматического изменения размера окон минибуфера. Вещественное число задает максимальную высоту в долях высоты фрейма; целое число задает максимальную высоту в единицах канонической высоты символа фрейма (см. Шрифт фрейма). Значение по умолчанию равно 0,25.

Обратите внимание, что значения указанных выше переменных действуют во время отображения, поэтому связывание их с помощью let вокруг кода, создающего сообщения области эха, не сработает. Если вы хотите предотвратить изменение размера окон минибуфера при отображении длинных сообщений, свяжите переменную message-truncate-lines вместо этого (см. Настройка области эха).

Параметр resize-mini-windows не влияет на поведение фреймов только с минибуфером (см. Макет фреймов). Следующий параметр позволяет автоматически изменять размер таких фреймов.

Параметр пользователя: resize-mini-frames

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

Если это функция, эта функция вызывается с фреймом только с минибуфером в качестве единственного аргумента. В момент вызова этой функции буфер окна минибуфера этого фрейма является буфером, содержимое которого будет показано в следующий раз, когда это окно будет перерисовано. От функции ожидается, что она подогнет фрейм к буферу подходящим образом.

Любое другое значение, отличное от nil, означает изменение размера фреймов только с минибуфером путем вызова fit-mini-frame-to-buffer, функции, которая ведет себя как fit-frame-to-buffer (см. Изменение размера окон), но не удаляет начальные или конечные пустые строки из текста буфера.

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/Minibuffer-Windows.html

Spec-Zone.ru

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