Next: , Previous: , Up: Displaying Buffers   [Contents][Index]


29.13.4 バッファー表示の追加オプション

以下のユーザーオプションでバッファーのディスプレイアクション(Choosing Windowを参照)の振る舞いをさらに変更することができます。

User Option: pop-up-windows

この変数の値が非nilなら、display-bufferは表示のために既存のバッファーを分割して新たなウィンドウを作成できる。

この変数は後方互換のためだけに提供される。このオプションの値が非nilのときはアクション関数display-buffer-pop-up-window (Buffer Display Action Functionsを参照)を呼び出すだけのdisplay-buffer-fallback-action内の特別なメカニズムを経由してdisplay-bufferにしたがう。この変数はdisplay-buffer-alist等により直接指定できるdisplay-buffer-pop-up-window自体からは参照されない。

User Option: split-window-preferred-function

この変数は、バッファーを表示する新たなウィンドウを作成するための、ウィンドウを分割する関数を指定する。これは、実際にウィンドウを分割するために、アクション関数display-buffer-pop-up-windowにより使用される。

値はウィンドウを単一の引数とする関数でなければならず、(要求されたバッファーを表示するために使用される)新たなウィンドウ、またはnil (分割の失敗を意味する)をリターンしなければならない。デフォルト値はsplit-window-sensibly (次に説明)。

Function: split-window-sensibly &optional window

この関数はwindowを分割して新たに作成したウィンドウをリターンする。windowを分割できなければnilをリターンする。windowが省略かnilの場合のデフォルトは選択されたウィンドウ。

この関数はウィンドウが分割できるかどうか判断する際の通常のルールにしたがう(Splitting Windowsを参照)。最初にまずsplit-height-threshold(以下参照)、およびその他が課す制約の元で新たなウィンドウが下になるように分割を試みる。これが失敗したらsplit-width-threshold(以下参照)が課す制約の元で新たなウィンドウが右になるように分割を試みる。これも失敗して、かつそのウィンドウがそのフレームの唯一のウィンドウなら、この関数はsplit-height-thresholdを無視して新たなウィンドウが下になるように再度分割を試みる。これも同様に失敗したら、この関数は諦めてnilをリターンする。

User Option: split-height-threshold

この変数はsplit-window-sensiblyがウィンドウを分割して新たなウィンドウを下に配置できるかどうかを指定する。整数なら元のウィンドウが最低でもその行数なければ分割しないことを意味する。nilなら、この方法では分割しないことを意味する。

User Option: split-width-threshold

この変数はsplit-window-sensiblyがウィンドウを分割して新たなウィンドウを右に配置できるかどうかを指定する。整数なら元のウィンドウが最低でもその列数なければ分割しないことを意味する。nilなら、この方法では分割しないことを意味する。

User Option: even-window-sizes

この変数が非nilならdisplay-bufferが既存のウィンドウを再利用する際は常にウィンドウのサイズを均等にして、そのウィンドウを選択されたウィンドウに隣接させる。

値がwidth-onlyなら再利用されるウィンドウが選択されたウィンドウの左か右にあり、かつ選択されたウィンドウが再利用されるウィンドウより広い場合のみサイズは均等になる。値がheight-onlyなら再利用されるウィンドウが選択されたウィンドウの上か下にあり、かつ選択されたウィンドウが再利用されるウィンドウより高い場合のみサイズは均等になる。その他の非nil値は、選択されたウィンドウと再利用されるウィンドウをコンビネーション的に比較して選択されたウィンドウの方が大ならサイズを均等にすることを意味する。

User Option: pop-up-frames

この変数の値が非nilなら、新たにフレームを作成することによりdisplay-bufferがバッファーを表示できることを意味する。デフォルトはnil

nil値はdisplay-bufferがすでにbuffer-or-nameを表示しているウィンドウを探す際に、選択されたフレームだけでなく可視およびアイコン化されたフレームを検索できることも意味する。

この変数は主に後方互換のために提供されている。値が非nilのときは、アクション関数display-buffer-pop-up-frame (Buffer Display Action Functionsを参照)を呼び出すだけのdisplay-buffer-fallback-action内の特別なメカニズムを経由してdisplay-bufferにしたがう。この変数はdisplay-buffer-alist等により直接指定できる、display-buffer-pop-up-window自体からは参照されない(これはウィンドウの分割前に行われる)。この変数はdisplay-buffer-alist等により直接指定できるdisplay-buffer-pop-up-frame自体からは参照されない。

User Option: pop-up-frame-function

この変数はバッファーを表示する新たなウィンドウを作成するためのフレームを作成する関数を指定する。これはアクション関数display-buffer-pop-up-frameにより使用される。

値はフレーム、またはフレームを作成できなかったらnilをリターンする引数をとらない関数であること。デフォルト値はpop-up-frame-alist (以下参照)により指定されるパラメーターを使用してフレームを作成する関数。

User Option: pop-up-frame-alist

この変数はフレームを新たに作成するためのpop-up-frame-functionで指定される関数が使用するフレームパラメーター(Frame Parametersを参照)のalistを保持する。デフォルトはnil

このオプションは後方互換のためだけに提供される。これはdisplay-buffer-pop-up-framepop-up-frame-functionの指定する関数を呼び出す際に、すべてのアクションalistのpop-up-frame-parametersエントリーの値に前置されるので、アクションalistのエントリーが指定する値がpop-up-frame-alistの対応する値を効果的にオーバーライドすることに注意。

したがってユーザーはpop-up-frame-alistをカスタマイズするのではなく、display-buffer-alistnoアクションalistのpop-up-frame-parametersエントリーをセットアップするべきである。ユーザーが指定したパラメーターの値だけが、display-bufferの呼び出し手が指定したパラメーターの値をオーバーライドするこが保証されている。

display-bufferのデザインではpop-up-windowspop-up-framespop-up-frame-alistsame-window-buffer-namessame-window-regexpsのような古いオプションを使用するコードにたいする保守に互換性を与えるために多くの努力が払われています。Lispプログラムやユーザーはこれらのオプションの使用は控えるべきです。上述のようにpop-up-frame-alistのカスタマイズにたいしては警告済みです。ここでは残りのオプションではなくディスプレイアクションを使用するように変換する方法を説明します。

pop-up-windows

この変数のデフォルトはt。これをnilにカスタマイズしてdisplay-bufferに何を行うべきではないかを指示するよりも、かわりに試みるべきアクション関数をdisplay-buffer-base-action内にリストするほうがよい。たとえば:

(customize-set-variable
 'display-buffer-base-action
 '((display-buffer-reuse-window display-buffer-same-window
    display-buffer-in-previous-window
    display-buffer-use-some-window)))
pop-up-frames

この変数をtにカスタマイズするのではなく、たとえば以下のようにdisplay-buffer-base-actionをカスタマイズすること:

(customize-set-variable
 'display-buffer-base-action
 '((display-buffer-reuse-window display-buffer-pop-up-frame)
   (reusable-frames . 0)))
same-window-buffer-names
same-window-regexps

これらのオプションのいずれかにたいしてバッファー名や正規表現を追加するかわりに、そのバッファーにたいしてアクション関数display-buffer-same-windowを指定するdisplay-buffer-alistエントリーを使用すること。

(customize-set-variable
 'display-buffer-alist
 (cons '("\\*foo\\*" (display-buffer-same-window))
        display-buffer-alist))