次: Choosing Window, 前: Buffers and Windows, 上: Windows
本節では、ウィンドウを自動的に選びそれに指定したバッファを表示する
便利な関数について述べます。
これらの関数は、ある状況では、既存のウィンドウを分割します。
ウィンドウを選ぶ際の発見的手法を制御する変数についても述べます。
より正確に制御するための低レベルの関数については、
これらの関数はすべてset-window-buffer
を呼び出して動作します。
バッファをカレントバッファにしてLispプログラムで参照したり変更できるように
するためには、本節の関数を使わないでください。
これらはその目的には強力すぎます。
ウィンドウのバッファの表示をユーザーにとっては迷惑で驚くようなものに
変更してしまうからです。
そのかわりに、ウィンドウのバッファの表示には影響せずに
バッファをプログラムから参照するためにカレントバッファにする
set-buffer
とsave-current-buffer
(see Current Buffer)を
使います。
この関数は、buffer-or-nameをカレントバッファにし、 さらに、選択されているウィンドウに当該バッファを表示する。 つまり、人間が当該バッファを見ることができるようになり、 以降のキーボードコマンドは当該バッファに適用される。 buffer-or-nameをカレントバッファにするが 選択されているウィンドウには表示しない
set-buffer
と比較してほしい。 see Current Buffer。buffer-or-nameが既存のバッファを指定しなければ、 その名前の新たなバッファが作成される。 新たなバッファのメジャーモードは変数
default-major-mode
に 従って設定される。 see Auto Major Mode。通常、指定したバッファはバッファリスト (選択されているフレームのバッファリストとフレーム独立のバッファリストの 両方)の先頭に置かれる。 これは、
other-buffer
の動作に影響する。 しかし、norecordがnil
以外であると、これを行わない。 see The Buffer List。関数
switch-to-buffer
は、しばしば、 C-x bにバインドされて対話的に使われる。 プログラムでも多用される。 つねにnil
を返す。
この関数は、buffer-or-nameをカレントバッファにし、 現在選択されていないウィンドウに当該バッファを表示する。 そして当該ウィンドウを選択する。 バッファの扱い方は
switch-to-buffer
と同じである。現在選択されているウィンドウは、この処理には絶対に使わない。 それが唯一のウィンドウである場合には、この目的のために ウィンドウを分割して別のウィンドウを作る。 選択されているウィンドウがすでに当該バッファを表示している場合には、 当該ウィンドウはそのまま表示し続けるが、それにも関わらず、 表示するために別のウィンドウを探す。
この関数は、norecordが
nil
であると、switch-to-buffer
のようにバッファリストを更新する。
この関数は、buffer-or-nameをカレントバッファにし、 以前には選択されていない別のウィンドウで当該バッファに切り替える。 そのウィンドウがそのフレームの選択されているウィンドウになる。
変数
pop-up-frames
がnil
以外であると、pop-to-buffer
は、可視フレームから 当該バッファをすでに表示しているウィンドウを探す。 そのようなウィンドウがあれば、そのウィンドウを返すとともに、 そのウィンドウをそのフレームの選択されているウィンドウにする。 そのようなウィンドウがなければ、新たなフレームを作成し それにバッファを表示する。
pop-up-frames
がnil
であると、pop-to-buffer
は選択されているフレーム内だけで処理を行う。 (選択されているフレームがミニバッファのみであるときには、pop-to-buffer
は、ミニバッファのみでない もっとも最近に選択されたフレーム内で処理する。)変数
pop-up-windows
がnil
以外であると、 もとのウィンドウとは異なる新たなウィンドウを作成するために ウィンドウを分割することがある。 詳しくは、Choosing Windowを参照。other-windowが
nil
以外であると、 選択されているウィンドウにbuffer-or-nameがすでに表示されていても、pop-to-buffer
は別のウィンドウを探したり作成する。 そのため、buffer-or-nameは2つのウィンドウに表示されることになる。 一方で、buffer-or-nameが選択されているウィンドウに すでに表示されていて、かつ、other-windowがnil
であると、 選択されているウィンドウはbuffer-or-nameの表示には十分であるとみなし、 なにも行わない。
display-buffer
に影響するすべての変数は、pop-to-buffer
にも影響する。 see Choosing Window。buffer-or-nameが文字列であり既存のバッファを指定しない場合、 その名前のバッファを作成する。 新たなバッファのメジャーモードは変数
default-major-mode
に 従って設定される。 see Auto Major Mode。この関数は、norecordが
nil
であると、switch-to-buffer
のようにバッファリストを更新する。