GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Minibuffer-Windows.html ・ emacs-doc.conao3.com

21.11 ミニバッファウィンドウ

これらの関数は、ミニバッファウィンドウにアクセスして選択し、それらがアクティブかどうかを判定し、リサイズ方法を制御します。

関数: minibuffer-window &optional frame

この関数は、フレーム frame で使用されるミニバッファウィンドウを返します。frame が nil である場合、それは選択中のフレームを表します。

なお、フレームで使用されるミニバッファウィンドウは、必ずしもそのフレーム自体の一部である必要はありません。独自のミニバッファを持たないフレームは、必然的に他のフレームのミニバッファウィンドウを使用します。ミニバッファを持たないフレームのミニバッファウィンドウは、そのフレームの minibuffer フレームパラメータを設定することで変更できます(バッファパラメータを参照)。

関数: set-minibuffer-window window

この関数は、使用するミニバッファウィンドウとして window を指定します。これにより、通常のミニバッファコマンドを呼び出しずにミニバッファにテキストを入力した場合に、ミニバッファが表示される位置が影響を受けます。通常のミニバッファ入力関数は、いずれも選択されたフレームに基づいてミニバッファウィンドウを選択することから始まるため、この関数による影響はありません。

関数: window-minibuffer-p &optional window

この関数は、window がミニバッファウィンドウである場合に t を返します。window のデフォルト値は選択中のウィンドウです。

以下の関数は、現在アクティブなミニバッファを表示しているウィンドウを返します。

関数: active-minibuffer-window

この関数は、現在アクティブなミニバッファのウィンドウを返すか、アクティブなミニバッファがない場合は nil を返します。

フレームが複数ある場合、ミニバッファウィンドウが複数存在し得るため、あるウィンドウが現在アクティブなミニバッファを表示しているかどうかを (minibuffer-window) の結果と比較するだけで判断するのは不十分です。

関数: minibuffer-window-active-p window

この関数は、window が現在アクティブなミニバッファを示している場合、non-nil を返します。

以下の2つのオプションで、ミニバッファウィンドウが自動的にリサイズされるか、またその際の最大サイズを制御できます。

ユーザーオプション: resize-mini-windows

このオプションは、ミニバッファウィンドウが自動的にリサイズされるかどうかを指定します。デフォルト値は grow-only で、これはミニバッファウィンドウがデフォルトで表示テキストに合わせて自動的に拡大し、ミニバッファが空になるとすぐに1行分に縮小されることを意味します。値が t の場合、Emacs は常にミニバッファウィンドウの高さを表示テキストに合わせようとします(ただし最低1行分は確保されます)。値が nil の場合、ミニバッファウィンドウが自動的にサイズ変更されることはありません。その場合、ウィンドウのリサイズコマンド(ウィンドウのリサイズ を参照)を使用して高さを調整できます。

ユーザーオプション: max-mini-window-height

このオプションでは、ミニバッファウィンドウを自動的にリサイズする際の最大高さを指定できます。浮動小数点数を指定すると、フレーム高さに対する割合として最大高さが指定されます。整数を指定すると、フレームの正準文字高さ(フレームフォントを参照)を単位とした最大高さが指定されます。デフォルト値は0.25です。

なお、上記2つの変数の値は表示時に適用されるため、echo-areaメッセージを生成するコードの前後でletバインディングを行っても機能しません。長いメッセージを表示する際にミニバッファウィンドウのサイズ変更を防ぎたい場合は、代わりにmessage-truncate-lines変数をバインドしてください(Echo Areaのカスタマイズを参照)。

オプション resize-mini-windows は、ミニバッファ専用フレームの動作には影響しません(フレームレイアウト を参照)。以下のオプションは、こうしたフレームの自動リサイズも有効にします。

ユーザーオプション: resize-mini-frames

これが nil の場合、ミニバッファ専用フレームが自動的にリサイズされることはありません。

これが関数である場合、リサイズ対象のミニバッファ専用フレームを唯一の引数としてその関数が呼び出されます。この関数が呼び出される時点で、そのフレームのミニバッファウィンドウのバッファが、次にそのウィンドウが再表示される際に表示される内容となるバッファとなります。この関数は、適切な方法でフレームをバッファに適合させることが求められます。

Any other non-nil value means to resize minibuffer-only frames by calling fit-mini-frame-to-buffer, a function that behaves like fit-frame-to-buffer (see Resizing Windows) but does not strip leading or trailing empty lines from the buffer text.