21.11 Minibuffer 窗口

这些函数用于访问和选中迷你缓冲区窗口、判断它们是否处于激活状态, 以及控制它们的自动调整大小行为。

Function: minibuffer-window &optional frame

该函数返回用于框架 frame 的迷你缓冲区窗口。 如果 framenil,则表示当前选中的框架。

注意,某个框架所使用的迷你缓冲区窗口不一定属于该框架本身—— 一个没有自身迷你缓冲区的框架,必然会使用其他框架的迷你缓冲区窗口。 无迷你缓冲区框架所使用的迷你缓冲区窗口,可以通过设置该框架的 minibuffer 框架参数来更改(see Buffer Parameters)。

Function: set-minibuffer-window window

该函数将 window 指定为要使用的迷你缓冲区窗口。 这会影响在不调用常规迷你缓冲区命令的情况下向其中放入文本时, 迷你缓冲区的显示位置。它对常规的迷你缓冲区输入函数没有影响, 因为这些函数都会先根据当前选中框架选择对应的迷你缓冲区窗口。

Function: window-minibuffer-p &optional window

如果 window 是迷你缓冲区窗口,该函数返回 twindow 的默认值为当前选中窗口。

下面的函数返回显示当前激活迷你缓冲区的窗口。

Function: active-minibuffer-window

该函数返回当前激活迷你缓冲区所在的窗口; 如果没有激活的迷你缓冲区,则返回 nil

仅通过将某个窗口与 (minibuffer-window) 的结果比较, 不足以判断该窗口是否显示当前激活的迷你缓冲区, 因为当存在多个框架时,可能会有多个迷你缓冲区窗口。

Function: minibuffer-window-active-p window

如果 window 显示的是当前激活的迷你缓冲区, 该函数返回非 nil

下面两个选项控制迷你缓冲区窗口是否自动调整大小, 以及调整过程中的最大高度。

User Option: resize-mini-windows

该选项指定迷你缓冲区窗口是否自动调整大小。默认值为 grow-only, 表示迷你缓冲区窗口默认会自动扩展以适应所显示的文本, 并在迷你缓冲区清空后立即收缩回一行高度。 如果值为 t,Emacs 会始终尝试让迷你缓冲区窗口的高度 适配其显示的文本(最小高度为一行)。 如果值为 nil,迷你缓冲区窗口不会自动改变大小。 这种情况下可以使用窗口大小调整命令(see Resizing Windows) 来手动调整其高度。

User Option: max-mini-window-height

该选项为迷你缓冲区窗口的自动调整大小设置最大高度限制。 浮点数指定的最大高度为框架高度的比例; 整数指定的最大高度以框架的标准字符高度为单位(see Frame Font)。 默认值为 0.25。

注意,上述两个变量的值只在显示时生效, 因此在产生回显区消息的代码周围对它们进行临时绑定不会起作用。 如果希望在显示长消息时阻止迷你缓冲区窗口调整大小, 请改为绑定变量 message-truncate-lines(see Echo Area Customization)。

选项 resize-mini-windows 不影响仅迷你缓冲区框架的行为(see Frame Layout)。 下面的选项同样支持对这类框架进行自动调整大小。

User Option: resize-mini-frames

如果该选项为 nil,仅迷你缓冲区框架不会被自动调整大小。

如果该选项是一个函数,则会以需要调整大小的仅迷你缓冲区框架 作为唯一参数调用该函数。调用该函数时, 该框架的迷你缓冲区窗口所对应的缓冲区, 是该窗口下次重新刷新时将要显示内容的缓冲区。 该函数应以合适的方式让框架适配缓冲区内容。

任何其他非 nil 值表示通过调用 fit-mini-frame-to-buffer 来自动调整仅迷你缓冲区框架的大小。该函数行为类似 fit-frame-to-buffer(see Resizing Windows), 但不会从缓冲区文本中去除开头或结尾的空行。


emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike