Next: , Previous: , Up: Windows   [Contents][Index]


27.12 表示するウィンドウの選択

コマンドdisplay-bufferは表示のために柔軟にウィンドウを選択して、そのウィンドウ内に指定されたバッファーを表示します。これはキーバインディングC-x 4 C-oを通じてインタラクティブに呼び出すことができます。またswitch-to-bufferpop-to-bufferを含む多くの関数やコマンドにからサブルーチンとしても使用されます(Switching Buffersを参照)。

このコマンドは、ウィンドウ内に表示するウィンドウを探すために、いくつかの複雑なステップを実行します。これらのステップはディスプレイアクション(display actions)を用いて記述されます。ディスプレイアクションは、(function . alist)という形式をもちます。ここで、functionは関数、または関数リストで、わたしたちはこれをアクション関数(action functions)として参照します。alistは連想リスト(association list)で、わたしたちはこれをアクションalist(action alists)として参照します。

アクション関数は表示するバッファーとアクションalistという、2つの引数を受け取ります。これは自身の条件にしたがってウィンドウウィンドウ選択または作成して、バッファーをウィンドウ内に表示します。成功した場合はそのウィンドウ、それ以外はnilをリターンします。事前定義されたアクション関数についてはDisplay Action Functionsを参照してください。

display-bufferは複数ソースからのディスプレイアクションを組み合わせて、アクション関数のいずれか1つがバッファーの表示を管理して非nil値をリターンするまでアクション関数を順に呼び出します。

Command: display-buffer buffer-or-name &optional action frame

このコマンドは、ウィンドウウィンドウ選択したり、そのバッファーをカレントにすることなく、buffer-or-nameをウィンドウに表示させる。引数buffer-or-nameはバッファー既存のバッファーの名前でなければならない。リターン値はそのバッファーを表示するために選ばれたウィンドウ。

オプション引数actionが非nilなら、それは通常はディスプレイアクション(上述)であること。display-bufferは以下のソース(記載順)からディスプレイアクションを集約して、アクション関数リストとアクションalistを構築する:

各アクション関数は、いずれかが非nilをリターンするまで第1引数にバッファー、第2引数に組み合わせられたアクションalistで順番に呼び出される。呼び出し側はウィンドウ内にバッファーを表示しない場合を処理する用意があることを示すために、アクションalistの要素として(allow-no-window . t)を渡すことができる。

引数actionには非nilの非list値も指定できる。これはたとえ選択されたウィンドウがすでにそのバッファーを表示していても、選択されたウィンドウではない別のウィンドウにバッファーが表示されるべきだという特別な意味をもつ。プレフィックス引数とともにインタラクティブに呼び出された場合には、actiontである。

オプション引数frameが非nilなら、そのバッファーがすでに表示されているか判断する際に、どのフレームをチェックするかを指定する。これはactionのアクションalistに要素(reusable-frames . frame)を追加するのと等価。Display Action Functionsを参照のこと。

Variable: display-buffer-overriding-action

この変数の値は、display-bufferにより最高の優先順で扱われるディスプレイアクションであること。デフォルト値は空(つまり(nil . nil))。

User Option: display-buffer-alist

このオプションの値はディスプレイアクションにコンディション(condition: 状態)をマップするalist。コンディションはそれぞれバッファー名にマッチする正規表現か2つの引数をとる関数であり、引数はバッファー名とdisplay-bufferに渡すaction引数である。display-bufferに渡されたバッファー名がこのalist内の正規表現にマッチするか、コンディションで指定された関数が非nilをリターンした場合、display-bufferはバッファーを表示すために対応するディスプレイアクションを使用する。

User Option: display-buffer-base-action

このオプションの値は、ディスプレイアクションであること。このオプションは、display-buffer呼び出しにたいする、“標準”のディスプレイアクションを定義するために使用できる。

Constant: display-buffer-fallback-action

このディスプレイアクションはdisplay-bufferにたいして、他のディスプレイアクションが与えられなかった場合の代替え処理を指定する。