以下のdisplay-buffer
(バッファー表示用のアクション関数を参照)用のアクション関数は特定のバッファーを表示するためにサイドウィンドウの作成や再利用を行います。
この関数は選択されたフレームのサイドウィンドウにbufferを表示する。bufferの表示に使用したウィンドウをリターンする。そのようなウィンドウが見つからない、または作成できなければnil
をリターンする。
alistはdisplay-buffer
の場合と同様のシンボルと値からなる連想リスト。alist内で以下のシンボルはこの関数では特別な意味をもつ:
side
ウィンドウを配置するフレームのサイド(側面)を表す。有効な値はleft
、top
、right
、bottom
。未指定ならウィンドウはフレームの底部(bottom)に配置される。
slot
指定したウィンドウを配置するサイドのスロットを表す。値0は指定したサイドのおおよそ中央にウィンドウを配置する。負の値は中央スロットの前(上方か左方)、正の値は中央スロットの後(下方か右方)を意味する。つまり特定のサイド上にあるすべてのウィンドウはslot
の値の順になる。未指定ならウィンドウは指定したサイドの中央に配置される。
dedicated
サイドウィンドウにたいしては、dedicatedフラグ(専用のウィンドウを参照)は若干異なる意味をもつ。他のアクション関数によりdisplay-buffer
がそのウィンドウを使用することを防ぐために、サイドウィンドウ作成時にそのフラグは値side
にセットされる。この値はquit-window
、kill-buffer
、previous-buffer
、next-buffer
呼び出しの間保たれる。
一度セットアップされれば、サイドウィンドウにたいするswitch-to-prev-buffer
とswitch-to-next-buffer
(ウィンドウのヒストリーを参照)の挙動も変更されます。特にサイドウィンドウでは、これらのコマンドは以前にそのウィンドウに表示されたことのないバッファーの表示を抑制します。さらにすでにサイドウィンドウに表示されているバッファーの、通常の非サイドウィンドウでの表示も抑制します。後者ルールの明記するべき例外は、アプリケーションがバッファー表示後にバッファーのローカル変数をリセットしたときに発生します。quit-window
やkill-buffer
が常に削除して、最終的にprevious-buffer
とnext-buffer
の使用を防ぐためにこれらの規則をオーバーライドするには、この値にt
をセットするか、display-buffer-mark-dedicated
を通じて値を指定してください。
同一サイドの同一スロットに2つ以上の異なるバッファーすると、最後に表示されたバッファーが対応するウィンドウに表示される。したがってバッファー間で同じサイドウィンドウを共有するためにスロットを使用できる。
この関数はパラメーターwindow-side
とwindow-slot
をインストールして永続化する(ウィンドウのパラメーターを参照)。alist内のwindow-parameters
エントリーを通じて明示的に提供されない限り、他のウィンドウパラメーターは何もインストールしない。
デフォルトではサイドウィンドウはsplit-window
(ウィンドウの分割を参照)で分割できません。さらにサイドウィンドウはアクションのターゲットとして明示的に指定されていなければ、バッファーディスプレイアクション(バッファー表示用のアクション関数を参照)によって再利用や分割されることはありません。delete-other-windows
はサイドウィンドウをフレーム上で唯一ののウィンドウにできないことにも注意してください(ウィンドウの削除を参照)。