Окна минибуфера
Эти функции позволяют получить доступ к окнам минибуфера, выбрать их, проверить, активны ли они, и управлять их изменением размера.
- Функция: 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