Next: , Previous: , Up: ミニバッファー   [Contents][Index]


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

以下の関数はミニバッファーウィンドウにアクセスと選択を行い、それがアクティブかどうかテストしてリサイズされる方法を制御します。

Function: minibuffer-window &optional frame

この関数はフレームframeにたいして使用されるミニバッファーウィンドウをリターンする。framenilならそれは選択されたフレームを意味する。

フレームが使用するミニバッファーウィンドウがフレームの一部である必要はないことに注意(ミニバッファーをもたないフレームは必要に応じて別のフレームのミニバッファーウィンドウを使用する)。ミニバッファーのないフレームのミニバッファーウィンドウは、そのフレームのminibufferフレームパラメーターをセットすることにより変更できる(バッファーのパラメーターを参照)。

Function: set-minibuffer-window window

この関数はミニバッファーウィンドウとしてwindowを使用するよう指定する。これは通常のミニバッファーコマンドを呼び出さずにミニバッファーにテキストを入力する場合には、ミニバッファーをどこに表示するかに影響を及ぼす。通常のミニバッファー入力関数はすべて選択されたフレームに対応するミニバッファーを選択して開始されるので影響はない。

Function: window-minibuffer-p &optional window

この関数はwindowがミニバッファーウィンドウならtをリターンする。windowのデフォルトは選択されたウィンドウ。

以下の関数はカレントでアクティブなミニバッファーを表示しているウィンドウをリターンします。

Function: active-minibuffer-window

この関数はカレントでアクティブなミニバッファーのウィンドウ、アクティブなミニバッファーがなければnilをリターンする。

(minibuffer-window)の結果の比較だけでは、与えられたウィンドウがカレントでアクティブなミニバッファーを表示するかどうかを判断するのは不十分である。なぜなら複数のフレームがある場合にはミニバッファーウィンドウも複数あり得る。

Function: minibuffer-window-active-p window

この関数はwindowがカレントでアクティブなミニバッファーを表示するウィンドウなら非nilをリターンする。

以下の2つのオプションはミニバッファーウィンドウが自動的にリサイズされるか否か、およびその処理でミニバッファーが大きくなり得るサイズを制御します。

User Option: resize-mini-windows

このオプションはミニバッファーウィンドウが自動的にリサイズされるかどうかを指定する。デフォルト値はgrow-onlyで、これはミニバッファーが表示するテキストを収容するために、ミニバッファーウィンドウがデフォルトにより自動的に拡張されて、ミニバッファーが空になれば即座に1行に縮小されることを意味する。値がtならEmacsは常にミニバッファーが表示するテキストにミニバッファーウィンドウの高さをフィットさせるように試みる。値がnilならミニバッファーウィンドウのサイズが自動的に変更されることは決してない。この場合には、ミニバッファーウィンドウの高さの調節のために、ウィンドウリサイズコマンドを使用できる(ウィンドウのリサイズを参照)。

User Option: max-mini-window-height

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

上記の2つの変数の値は表示時に効果を発揮するので、エコーエリアのメッセージを生成するコードの前後でこれらの変数をletバインドしても機能しないことに注意してください。長いメッセージを表示する際にミニバッファーウィンドウのリサイズを抑止したければ、かわりにmessage-truncate-lines変数をバインドしてください(エコーエリアのカスタマイズを参照)。

オプションresize-mini-windowsはミニバッファーのみのフレームの振る舞いには影響を与えません(フレームのレイアウトを参照)。以下のオプションによりそのようなフレームも同じように自動的にリサイズすることが可能になります。

User Option: resize-mini-frames

これがnilならミニバッファーのみのフレームは決して自動的にリサイズされない。

これが関数なら、その関数はリサイズするミニバッファーのみフレームを単一の引数として呼び出される。この関数が呼び出されるときは、そのフレームのミニバッファーウィンドウのバッファーは、そのウィンドウの次回再表示時にコンテンツが表示されるバッファーである。この関数には何らかの適切な方法によりフレームをバッファーにフィットさせることが期待される。

それ以外の非nil値はfit-mini-frame-to-bufferを呼び出すことによりミニバッファーのみのフレームをリサイズすることを意味する。この関数はfit-frame-to-bufferと似ているが、バッファーテキストから先頭や末尾の空行を取り除かない(ウィンドウのリサイズを参照)。