以下の関数はミニバッファーウィンドウにアクセスと選択を行い、それがアクティブかどうかテストしてリサイズされる方法を制御します。
この関数はフレームframeにたいして使用されるミニバッファーウィンドウをリターンする。frameがnil
ならそれは選択されたフレームを意味する。
フレームが使用するミニバッファーウィンドウがフレームの一部である必要はないことに注意(ミニバッファーをもたないフレームは必要に応じて別のフレームのミニバッファーウィンドウを使用する)。ミニバッファーのないフレームのミニバッファーウィンドウは、そのフレームのminibuffer
フレームパラメーターをセットすることにより変更できる(バッファーのパラメーターを参照)。
この関数はミニバッファーウィンドウとしてwindowを使用するよう指定する。これは通常のミニバッファーコマンドを呼び出さずにミニバッファーにテキストを入力する場合には、ミニバッファーをどこに表示するかに影響を及ぼす。通常のミニバッファー入力関数はすべて選択されたフレームに対応するミニバッファーを選択して開始されるので影響はない。
この関数はwindowがミニバッファーウィンドウならt
をリターンする。windowのデフォルトは選択されたウィンドウ。
以下の関数はカレントでアクティブなミニバッファーを表示しているウィンドウをリターンします。
この関数はカレントでアクティブなミニバッファーのウィンドウ、アクティブなミニバッファーがなければnil
をリターンする。
(minibuffer-window)
の結果の比較だけでは、与えられたウィンドウがカレントでアクティブなミニバッファーを表示するかどうかを判断するのは不十分である。なぜなら複数のフレームがある場合にはミニバッファーウィンドウも複数あり得る。
この関数はwindowがカレントでアクティブなミニバッファーを表示するウィンドウなら非nil
をリターンする。
以下の2つのオプションはミニバッファーウィンドウが自動的にリサイズされるか否か、およびその処理でミニバッファーが大きくなり得るサイズを制御します。
このオプションはミニバッファーウィンドウが自動的にリサイズされるかどうかを指定する。デフォルト値はgrow-only
で、これはミニバッファーが表示するテキストを収容するために、ミニバッファーウィンドウがデフォルトにより自動的に拡張されて、ミニバッファーが空になれば即座に1行に縮小されることを意味する。値がt
ならEmacsは常にミニバッファーが表示するテキストにミニバッファーウィンドウの高さをフィットさせるように試みる。値がnil
ならミニバッファーウィンドウのサイズが自動的に変更されることは決してない。この場合には、ミニバッファーウィンドウの高さの調節のために、ウィンドウリサイズコマンドを使用できる(ウィンドウのリサイズを参照)。
このオプションはミニバッファーウィンドウの自動的なリサイズにたいする最大高さを提供する。浮動小数点数はフレーム高さにたいする割合として最大高さを指定する。整数はフレームの正規文字高さの単位で最大高さを指定する(フレームのフォントを参照)。デフォルト値は0.25。
上記の2つの変数の値は表示時に効果を発揮するので、エコーエリアのメッセージを生成するコードの前後でこれらの変数をletバインドしても機能しないことに注意してください。長いメッセージを表示する際にミニバッファーウィンドウのリサイズを抑止したければ、かわりにmessage-truncate-lines
変数をバインドしてください(エコーエリアのカスタマイズを参照)。
オプションresize-mini-windows
はミニバッファーのみのフレームの振る舞いには影響を与えません(フレームのレイアウトを参照)。以下のオプションによりそのようなフレームも同じように自動的なリサイズが有効になります。
これがnil
ならミニバッファーのみのフレームは決して自動的にリサイズされない。
これが関数なら、その関数はリサイズするミニバッファーのみフレームを単一の引数として呼び出される。この関数が呼び出されるときは、そのフレームのミニバッファーウィンドウのバッファーは、そのウィンドウの次回再表示時にコンテンツが表示されるバッファーである。この関数には何らかの適切な方法によりフレームをバッファーにフィットさせることが期待される。
それ以外の非nil
値はfit-mini-frame-to-buffer
を呼び出すことによりミニバッファーのみのフレームをリサイズすることを意味する。この関数はfit-frame-to-buffer
と似ているが、バッファーテキストから先頭や末尾の空行を取り除かない(ウィンドウのリサイズを参照)。