以下のユーザーオプションでバッファーのディスプレイアクション(バッファーを表示するウィンドウの選択を参照)の振る舞いをさらに変更することができます。
この変数の値が非nil
なら、display-buffer
は表示のために既存のバッファーを分割して新たなウィンドウを作成できる。
この変数は後方互換のためだけに提供される。このオプションの値が非nil
のときはアクション関数display-buffer-pop-up-window
(バッファー表示用のアクション関数を参照)を呼び出すだけのdisplay-buffer-fallback-action
内の特別なメカニズムを経由してdisplay-buffer
にしたがう。この変数はdisplay-buffer-alist
等により直接指定できるdisplay-buffer-pop-up-window
自体からは参照されない。
この変数は、バッファーを表示する新たなウィンドウを作成するための、ウィンドウを分割する関数を指定する。これは、実際にウィンドウを分割するために、アクション関数display-buffer-pop-up-window
により使用される。
値はウィンドウを単一の引数とする関数でなければならず、(要求されたバッファーを表示するために使用される)新たなウィンドウ、またはnil
(分割の失敗を意味する)をリターンしなければならない。デフォルト値はsplit-window-sensibly
(次に説明)。
この関数はwindowを分割して新たに作成したウィンドウをリターンする。windowを分割できなければnil
をリターンする。windowが省略かnil
の場合のデフォルトは選択されたウィンドウ。
この関数はウィンドウが分割できるかどうか判断する際の通常のルールにしたがう(ウィンドウの分割を参照)。最初にまずsplit-height-threshold
(以下参照)、およびその他が課す制約の元で新たなウィンドウが下になるように分割を試みる。これが失敗したらsplit-width-threshold
(以下参照)が課す制約の元で新たなウィンドウが右になるように分割を試みる。これも失敗して、かつそのウィンドウがそのフレームの唯一のウィンドウなら、この関数はsplit-height-threshold
を無視して新たなウィンドウが下になるように再度分割を試みる。これも同様に失敗したら、この関数は諦めてnil
をリターンする。
この変数はsplit-window-sensibly
がウィンドウを分割して新たなウィンドウを下に配置できるかどうかを指定する。整数なら元のウィンドウが最低でもその行数なければ分割しないことを意味する。nil
なら、この方法では分割しないことを意味する。
この変数はsplit-window-sensibly
がウィンドウを分割して新たなウィンドウを右に配置できるかどうかを指定する。整数なら元のウィンドウが最低でもその列数なければ分割しないことを意味する。nil
なら、この方法では分割しないことを意味する。
この変数が非nil
ならdisplay-buffer
が既存のウィンドウを再利用する際は常にウィンドウのサイズを均等にして、そのウィンドウを選択されたウィンドウに隣接させる。
値がwidth-only
なら再利用されるウィンドウが選択されたウィンドウの左か右にあり、かつ選択されたウィンドウが再利用されるウィンドウより広い場合のみサイズは均等になる。値がheight-only
なら再利用されるウィンドウが選択されたウィンドウの上か下にあり、かつ選択されたウィンドウが再利用されるウィンドウより高い場合のみサイズは均等になる。その他の非nil
値は、選択されたウィンドウと再利用されるウィンドウをコンビネーション的に比較して選択されたウィンドウの方が大ならサイズを均等にすることを意味する。
この変数の値が非nil
なら、新たにフレームを作成することによりdisplay-buffer
がバッファーを表示できることを意味する。デフォルトはnil
。
非nil
値はdisplay-buffer
がすでにbuffer-or-nameを表示しているウィンドウを探す際に、選択されたフレームだけでなく可視およびアイコン化されたフレームを検索できることも意味する。
display-buffer
のalistの同じ名前のエントリーは、この変数より優先される。
この変数は主に後方互換のために提供されている。値が非nil
のときは、アクション関数display-buffer-pop-up-frame
(バッファー表示用のアクション関数を参照)を呼び出すだけのdisplay-buffer-fallback-action
内の特別なメカニズムを経由してdisplay-buffer
にしたがう。この変数はdisplay-buffer-alist
等により直接指定できる、display-buffer-pop-up-window
自体からは参照されない(これはウィンドウの分割前に行われる)。この変数はdisplay-buffer-alist
等により直接指定できるdisplay-buffer-pop-up-frame
自体からは参照されない。
この変数はバッファーを表示する新たなウィンドウを作成するためのフレームを作成する関数を指定する。これはアクション関数display-buffer-pop-up-frame
により使用される。
値はフレーム、またはフレームを作成できなかったらnil
をリターンする引数をとらない関数であること。デフォルト値はpop-up-frame-alist
(以下参照)により指定されるパラメーターを使用してフレームを作成する関数。
この変数はフレームを新たに作成するためのpop-up-frame-function
で指定される関数が使用するフレームパラメーター(フレームのパラメーターを参照)のalistを保持する。デフォルトはnil
。
このオプションは後方互換のためだけに提供される。これはdisplay-buffer-pop-up-frame
がpop-up-frame-function
の指定する関数を呼び出す際に、すべてのアクションalistのpop-up-frame-parameters
エントリーの値に前置されるので、アクションalistのエントリーが指定する値がpop-up-frame-alist
の対応する値を効果的にオーバーライドすることに注意。
したがってユーザーはpop-up-frame-alist
をカスタマイズするのではなく、display-buffer-alist
noアクションalistのpop-up-frame-parameters
エントリーをセットアップするべきである。ユーザーが指定したパラメーターの値だけが、display-buffer
の呼び出し手が指定したパラメーターの値をオーバーライドするこが保証されている。
display-buffer
のデザインではpop-up-windows
、pop-up-frames
、pop-up-frame-alist
、same-window-buffer-names
、same-window-regexps
のような古いオプションを使用するコードにたいする保守に互換性を与えるために多くの努力が払われています。Lispプログラムやユーザーはこれらのオプションの使用は控えるべきです。上述のようにpop-up-frame-alist
のカスタマイズにたいしては警告済みです。ここでは残りのオプションではなくディスプレイアクションを使用するように変換する方法を説明します。
pop-up-windows
¶この変数のデフォルトはt
。これをnil
にカスタマイズしてdisplay-buffer
に何を行うべきではないかを指示するよりも、かわりに試みるべきアクション関数をdisplay-buffer-base-action
内にリストするほうがよい。たとえば:
(setopt 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
をカスタマイズできる:
(setopt display-buffer-base-action '(nil (pop-up-frames . t)))
same-window-buffer-names
¶same-window-regexps
これらのオプションのいずれかにたいしてバッファー名や正規表現を追加するかわりに、そのバッファーにたいしてアクション関数display-buffer-same-window
を指定するdisplay-buffer-alist
エントリーを使用すること。
(setopt display-buffer-alist (cons '("\\*foo\\*" (display-buffer-same-window)) display-buffer-alist))