Next: Window Point, Previous: Displaying Buffers, Up: Windows
本節では、バッファを表示するためのウィンドウを選ぶための基本的な機能、
display-buffer
について述べます。
上位レベルの関数やコマンドはすべてこのサブルーティンを使います。
ここでは、display-buffer
の使い方とカスタマイズ方法を説明します。
このコマンドは、
pop-to-buffer
のように、 buffer-or-nameをあるウィンドウに表示するが、 そのウィンドウを選択しないので当該バッファもカレントバッファにならない。 この関数は、選択されているウィンドウを変えない。not-this-windowが
nil
以外であると、 指定したバッファが選択されているウィンドウにすでに表示されていても、 別のウィンドウに当該バッファを表示することを意味する。 これにより、当該バッファが同時に2つのウィンドウに表示される。 さもなければ、buffer-or-nameがウィンドウにすでに表示されていると、 それで十分とみなしこの関数はなにもしない。
display-buffer
は、buffer-or-nameを表示するために 選んだウィンドウを返す。引数frameが
nil
以外であると、 バッファがすでに表示されているかどうかを検査するときに どのフレームを対象とするかを指定する。 それらのフレームのどれかのウィンドウに当該バッファがすでに表示されていると、display-buffer
は単にそのウィンドウを返す。 frameの可能な値はつぎのとおりである。
nil
であると、選択されているフレームのウィンドウを対象とする。t
であると、すべてのフレームのウィンドウを対象とする。visible
であると、 すべての可視フレームのすべてのウィンドウを対象にする。- 0であると、すべての可視フレームやアイコンになっているフレーム のウィンドウを対象にする。
- フレームであると、当該フレームのウィンドウを対象にする。
display-buffer
がウィンドウを作成したり探す詳しい手順は、 以下に述べる変数に依存する。
この変数は、
display-buffer
が新たにウィンドウを作るかどうかを制御する。nil
以外であり、かつ、ウィンドウがたった1つである場合、 そのウィンドウを分割する。nil
であると、display-buffer
は 単一のウィンドウを分割せずにそれ全体を使う。
この変数は、ウィンドウが複数ある場合に
display-buffer
がどの時点でウィンドウを分割するかを決定する。display-buffer
は、最大ウィンドウの行数が この変数による指定行数より大きければ、最大ウィンドウをつねに分割する。 最大ウィンドウがこれだけ大きくない場合には、 それが唯一のウィンドウであり、かつ、pop-up-windows
がnil
以外 の場合にのみ最大ウィンドウを分割する。
この変数は、
display-buffer
が新たなフレームを作るかどうかを制御する。nil
以外であると、display-buffer
は、 すべての可視フレームから指定されたバッファをすでに表示している 既存のウィンドウを探す。 そのようなウィンドウがあれば、そのウィンドウを返す。 さもなければ、新たなフレームを作る。 変数pop-up-frames
がnil
以外であると、 変数pop-up-windows
とsplit-height-threshold
は影響しない。
pop-up-frames
がnil
であると、display-buffer
はウィンドウを分割するか再利用する。詳しくは、see Frames。
この変数は、
pop-up-frames
がnil
以外であるときに どのように新たなフレームを作るかを指定する。その値は引数なしの関数であること。
display-buffer
が新たにフレームを作るとき、 フレームを返すこの関数を呼び出す。 この変数のデフォルト値は、pop-up-frame-alist
のパラメータを使って新たなフレームを作る関数である。
この変数は、
display-buffer
が新たにフレームを作るときに 使用するフレームパラメータを指定する連想リストを保持する。 フレームパラメータに関して詳しくは、 see Frame Parameters。
特別に表示すべきバッファのバッファ名のリスト。 バッファ名がこのリストにあると、
display-buffer
は当該バッファを特別に扱う。デフォルトでは、特別に表示するとは、 専用のフレームにバッファを表示することである。
リストの要素が文字列でなくリストであると、 リストのcarがバッファ名であり、 リストの残りはフレームの作成方法を指定する。 それは、フレームパラメータを指定する連想リストであるか、 関数とそれに渡す引数である。 (関数の第1引数はつねに表示すべきバッファである。 そのあとにリスト内の引数が続く。)
特別に表示すべきバッファを指定する正規表現のリスト。 バッファ名がこのリストのいずれかの正規表現に一致すると、
display-buffer
は当該バッファを特別に扱う。デフォルトでは、特別に表示するとは、 専用のフレームにバッファを表示することである。
リストの要素が文字列でなくリストであると、 リストのcarが正規表現であり、 リストの残りはフレームの作成方法を指定する。 上記の
special-display-buffer-names
を参照。
この変数は、バッファを特別に表示するために呼び出す関数を保持する。 引数としてバッファを受け取り、 当該バッファを表示したウィンドウを返すこと。
この関数のデフォルト値は
special-display-popup-frame
である。
この関数は、bufferをそれ専用のフレームに表示する。 あるフレームのウィンドウにbufferがすでに表示されている場合、 当該ウィンドウを使うために当該フレームを可視にし手前に持ってくる。 さもなければ、buffer用にフレームを作成する。
この関数は、bufferを表示している既存のウィンドウのフレームで 当該バッファだけを表示しているかどうかに関わらず、 既存の当該ウィンドウを使う。 しかし、bufferを作るまえに読者の初期化ファイルで上記の変数に設定 しているときには、当該ウィンドウは以前にこの関数が作成したものであろう。
この変数は、
special-display-popup-frame
がフレームを作るときに 使用するフレームパラメータを保持する。
選択されているウィンドウに表示すべきバッファのバッファ名のリスト。 バッファ名がこのリストにあると、
display-buffer
は選択されているウィンドウで当該バッファに切り替える。
選択されているウィンドウに表示すべきバッファを指定する正規表現のリスト。 バッファ名がこのリストのいずれかの正規表現に一致すると、
display-buffer
は選択されているウィンドウで当該バッファに切り替える。
この変数は、
display-buffer
のふるまいをカスタマイズする もっとも柔軟な方法である。nil
以外であると、display-buffer
が処理を依頼するために 呼び出す関数であること。 その関数は、display-buffer
が受け取るのと同じ2つの引数を受け付けること。 その関数は、ウィンドウを選ぶか作成し、指定されたバッファを表示し、 当該ウィンドウを返すこと。このフックは、上に述べた他のオプションやフックすべてに優先する。
ウィンドウにはそのバッファ『専用』と印を付けられます。
そうすると、display-buffer
は他のバッファを表示するために
当該ウィンドウを使わないようにします。