Next: , Up: サイドウィンドウ   [Contents][Index]


29.17.1 サイドウィンドウへのバッファーの表示

以下のdisplay-buffer (バッファー表示用のアクション関数を参照)用のアクション関数は特定のバッファーを表示するためにサイドウィンドウの作成や再利用を行います。

Function: display-buffer-in-side-window buffer alist

この関数は選択されたフレームのサイドウィンドウにbufferを表示する。bufferの表示に使用したウィンドウをリターンする。そのようなウィンドウが見つからない、または作成できなければnilをリターンする。

alistdisplay-bufferの場合と同様のシンボルと値からなる連想リスト。alist内で以下のシンボルはこの関数では特別な意味をもつ:

side

ウィンドウを配置するフレームのサイド(側面)を表す。有効な値はlefttoprightbottom。未指定ならウィンドウはフレームの底部(bottom)に配置される。

slot

指定したウィンドウを配置するサイドのスロットを表す。値0は指定したサイドのおおよそ中央にウィンドウを配置する。負の値は中央スロットの前(上方か左方)、正の値は中央スロットの後(下方か右方)を意味する。つまり特定のサイド上にあるすべてのウィンドウはslotの値の順になる。未指定ならウィンドウは指定したサイドの中央に配置される。

dedicated

サイドウィンドウにたいしては、dedicatedフラグ(専用のウィンドウを参照)は若干異なる意味をもつ。他のアクション関数によりdisplay-bufferがそのウィンドウを使用することを防ぐために、サイドウィンドウ作成時にそのフラグは値sideにセットされる。この値はquit-windowkill-bufferprevious-buffernext-buffer呼び出しの間保たれる。

一度セットアップされれば、サイドウィンドウにたいするswitch-to-prev-bufferswitch-to-next-buffer (ウィンドウのヒストリーを参照)の挙動も変更されます。特にサイドウィンドウでは、これらのコマンドは以前にそのウィンドウに表示されたことのないバッファーの表示を抑制します。さらにすでにサイドウィンドウに表示されているバッファーの、通常の非サイドウィンドウでの表示も抑制します。後者ルールの明記するべき例外は、アプリケーションがバッファー表示後にバッファーのローカル変数をリセットしたときに発生します。quit-windowkill-bufferが常に削除して、最終的にprevious-buffernext-bufferの使用を防ぐためにこれらの規則をオーバーライドするには、この値にtをセットするか、display-buffer-mark-dedicatedを通じて値を指定してください。

同一サイドの同一スロットに2つ以上の異なるバッファーすると、最後に表示されたバッファーが対応するウィンドウに表示される。したがってバッファー間で同じサイドウィンドウを共有するためにスロットを使用できる。

この関数はパラメーターwindow-sidewindow-slotをインストールして永続化する(ウィンドウのパラメーターを参照)。alist内のwindow-parametersエントリーを通じて明示的に提供されない限り、他のウィンドウパラメーターは何もインストールしない。

デフォルトではサイドウィンドウはsplit-window (ウィンドウの分割を参照)で分割できません。さらにサイドウィンドウはアクションのターゲットとして明示的に指定されていなければ、バッファーディスプレイアクション(バッファー表示用のアクション関数を参照)によって再利用や分割されることはありません。delete-other-windowsはサイドウィンドウをフレーム上で唯一ののウィンドウにできないことにも注意してください(ウィンドウの削除を参照)。