Next: , Previous: Buffers and Windows, Up: Windows


27.7 ウィンドウへのバッファの表示

本節では、ウィンドウを自動的に選びそれに指定したバッファを表示する 便利な関数について述べます。 これらの関数は、ある状況では、既存のウィンドウを分割します。 ウィンドウを選ぶ際の発見的手法を制御する変数についても述べます。 より正確に制御するための低レベルの関数については、 これらの関数はすべてset-window-bufferを呼び出して動作します。

バッファをカレントバッファにしてLispプログラムで参照したり変更できるように するためには、本節の関数を使わないでください。 これらはその目的には強力すぎます。 ウィンドウのバッファの表示をユーザーにとっては迷惑で驚くようなものに 変更してしまうからです。 そのかわりに、ウィンドウのバッファの表示には影響せずに バッファをプログラムから参照するためにカレントバッファにする set-buffersave-current-buffer(see Current Buffer)を 使います。

— コマンド: switch-to-buffer buffer-or-name &optional norecord

この関数は、buffer-or-nameをカレントバッファにし、 さらに、選択されているウィンドウに当該バッファを表示する。 つまり、人間が当該バッファを見ることができるようになり、 以降のキーボードコマンドは当該バッファに適用される。 buffer-or-nameをカレントバッファにするが 選択されているウィンドウには表示しないset-bufferと比較してほしい。 see Current Buffer

buffer-or-nameが既存のバッファを指定しなければ、 その名前の新たなバッファが作成される。 新たなバッファのメジャーモードは変数default-major-modeに 従って設定される。 see Auto Major Mode

通常、指定したバッファはバッファリスト (選択されているフレームのバッファリストとフレーム独立のバッファリストの 両方)の先頭に置かれる。 これは、other-bufferの動作に影響する。 しかし、norecordnil以外であると、これを行わない。 see The Buffer List

関数switch-to-bufferは、しばしば、 C-x bにバインドされて対話的に使われる。 プログラムでも多用される。 つねにnilを返す。

— コマンド: switch-to-buffer-other-window buffer-or-name &optional norecord

この関数は、buffer-or-nameをカレントバッファにし、 現在選択されていないウィンドウに当該バッファを表示する。 そして当該ウィンドウを選択する。 バッファの扱い方はswitch-to-bufferと同じである。

現在選択されているウィンドウは、この処理には絶対に使わない。 それが唯一のウィンドウである場合には、この目的のために ウィンドウを分割して別のウィンドウを作る。 選択されているウィンドウがすでに当該バッファを表示している場合には、 当該ウィンドウはそのまま表示し続けるが、それにも関わらず、 表示するために別のウィンドウを探す。

この関数は、norecordnilであると、 switch-to-bufferのようにバッファリストを更新する。

— Function: pop-to-buffer buffer-or-name &optional other-window norecord

この関数は、buffer-or-nameをカレントバッファにし、 以前には選択されていない別のウィンドウで当該バッファに切り替える。 そのウィンドウがそのフレームの選択されているウィンドウになる。

変数pop-up-framesnil以外であると、 pop-to-bufferは、可視フレームから 当該バッファをすでに表示しているウィンドウを探す。 そのようなウィンドウがあれば、そのウィンドウを返すとともに、 そのウィンドウをそのフレームの選択されているウィンドウにする。 そのようなウィンドウがなければ、新たなフレームを作成し それにバッファを表示する。

pop-up-framesnilであると、 pop-to-bufferは選択されているフレーム内だけで処理を行う。 (選択されているフレームがミニバッファのみであるときには、 pop-to-bufferは、ミニバッファのみでない もっとも最近に選択されたフレーム内で処理する。)

変数pop-up-windowsnil以外であると、 もとのウィンドウとは異なる新たなウィンドウを作成するために ウィンドウを分割することがある。 詳しくは、Choosing Windowを参照。

other-windownil以外であると、 選択されているウィンドウにbuffer-or-nameがすでに表示されていても、 pop-to-bufferは別のウィンドウを探したり作成する。 そのため、buffer-or-nameは2つのウィンドウに表示されることになる。 一方で、buffer-or-nameが選択されているウィンドウに すでに表示されていて、かつ、other-windownilであると、 選択されているウィンドウはbuffer-or-nameの表示には十分であるとみなし、 なにも行わない。

display-bufferに影響するすべての変数は、 pop-to-bufferにも影響する。 see Choosing Window

buffer-or-nameが文字列であり既存のバッファを指定しない場合、 その名前のバッファを作成する。 新たなバッファのメジャーモードは変数default-major-modeに 従って設定される。 see Auto Major Mode

この関数は、norecordnilであると、 switch-to-bufferのようにバッファリストを更新する。

— コマンド: replace-buffer-in-windows buffer

この関数は、bufferを表示しているすべてのウィンドウにおいて bufferを別のバッファに切り替える。 別のバッファはother-bufferで選ぶ。 この関数の普通の用途は、別のバッファがどれになるか気にしない場合である。 つまり、bufferが表示されていないことを保証したい場合である。

この関数はnilを返す。