以下の display-buffer 用のアクション関数(バッファ表示用のアクション関数
を参照)は、指定したバッファを表示するためのサイドウィンドウを作成または再利用します。
この関数は、選択されたフレームのサイドウィンドウに buffer を表示します。buffer
の表示に使用されたウィンドウを返します。そのようなウィンドウが見つからないか作成できない場合は、nil を返します。
alist は、display-buffer
と同様にシンボルと値の対応リストです。alist
に含まれる以下のシンボルは、この関数において特別な意味を持ちます:
sideウィンドウを配置するフレーム側を指定します。有効な値は left、top、right、bottom です。指定しない場合、ウィンドウはフレームの下部に配置されます。
slotウィンドウを配置する指定側のスロットを示します。値が0の場合は、原則として指定側の中央にウィンドウを配置します。負の値の場合は、中央のスロットより前の(すなわち、上または左側の)スロットを使用します。正の値の場合は、中央のスロットより後の(すなわち、下または右側の)スロットを使用します。したがって、特定の側にあるすべてのウィンドウは、slotの値によって順序付けられます。指定されていない場合は、ウィンドウは指定側の中央に配置されます。
dedicated専用フラグ(専用ウィンドウを参照)は、サイドウィンドウにおいてわずかに異なる意味を持ちます。サイドウィンドウが作成されると、そのフラグにはsideという値が設定され、display-bufferが他のアクション関数でそのウィンドウを使用することを防ぎます。この値は、quit-window、kill-buffer、previous-buffer、および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
ではサイドウィンドウをそのフレーム上の唯一のウィンドウにすることはできません(ウィンドウの削除 を参照)。