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


29.15 専用のウィンドウ

特定のウィンドウがそのウィンドウのバッファーにたいして専用(dedicated)であるとマークすることにより、バッファーを表示する関数にそのウィンドウを使用しないように告げることができます。display-buffer (バッファーを表示するウィンドウの選択を参照)は、他のバッファーの表示に専用バッファーを決して使用しません。 get-lru-windowget-largest-window (ウィンドウのサイクル順を参照)は、dedicated引数が非nilのときは専用ウィンドウを候補とはみなしません。専用ウィンドウにたいする配慮に関してset-window-buffer (バッファーとウィンドウを参照)の挙動は若干異なります。以下を参照してください。

ウィンドウからのバッファー削除、およびフレームからのウィンドウ削除を意図した関数は、処理するウィンドウが専用ウィンドウのときは特別な挙動を示す可能性があります。ここでは4つの基本ケース、すなわち(1)そのウィンドウがフレーム上で唯一のウィンドウの場合、(2)ウィンドウはフレーム上で唯一のウィンドウだが同一端末上に別のフレームがある場合、(3)そのウィンドウが同一端末上で唯一のフレームの唯一のウィンドウの場合、(4) dedicated(専用ウィンドウ)の値がside (サイドウィンドウへのバッファーの表示を参照)の場合を明確に区別することにします。

特にdelete-windows-on (ウィンドウの削除を参照)は関連するフレームを削除する際にケース(2)を、フレーム上で唯一のウィンドウに他のバッファーを表示する際にケース(3)と(4)を処理します。バッファーがkillされる際に呼び出される関数replace-buffer-in-windows(バッファーとウィンドウを参照)は、ケース(1)ではウィンドウを削除して、それ以外ではdelete-windows-onのように振る舞います。

bury-buffer (バッファーリストを参照)が選択されたウィンドウを操作する際は、選択されたフレームを処理するためにframe-auto-hide-function (ウィンドウのquitを参照)を呼び出すことによってケース(2)を取り扱います。他の2つのケースはreplace-buffer-in-windowsと同様に処理されます。

Function: window-dedicated-p &optional window

この関数はwindowがそのバッファーにたいして専用なら非nil、それ以外はnilをリターンする。より正確には最後のset-window-dedicated-p呼び出しで割り当てられた値、set-window-dedicated-pwindowを引数として呼び出されたことがなければnilがリターン値となる。windowのデフォルトは選択されたウィンドウ。

Function: set-window-dedicated-p window flag

この関数はflagが非nilならwindowがそのバッファーに専用、それ以外は非専用とマークする。コマンドC-x w d (toggle-window-dedicated)でインタラクティブに同じことを行うことができる。

特別なケースとしてflagtの場合には、windowはそのバッファーにたいして特に専用(strongly dedicated)になる。set-window-bufferは処理対象のウィンドウが特に専用のウィンドウで、かつ表示を要求されたバッファーが表示済みでなければエラーをシグナルする。その他の関数はtを他の非nil値と区別して扱わない。

適切なdedicatedアクションalistエントリー(バッファー表示用のアクションalistを参照)を与えることにより、display-bufferが作成するウィンドウにたいしてそのバッファー専用であるとマークするよう指示することもできます。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.