Next: Windows and Frames, Up: Windows [Contents][Index]
ウィンドウ(window)とは任意のバッファーを表示するために使用されるスクリーン領域です。Emacs LispではウィンドウはスペシャルLispオブジェクトとして表現されます。
ウィンドウはフレームへとグループ化されます(Framesを参照)。それぞれのフレームは最低でも1つのウィンドウを含みます。ユーザーは複数のバッファーを一度に閲覧するために、それを複数のオーバーラップしないウィンドウに分割することができます。Lispプログラムはさまざまな目的にたいして複数のウィンドウを使用できます。たとえばRmailでは1つのウィンドウでメッセージタイトル、もう一方のウィンドウで選択したメッセージのコンテンツを閲覧できます。
Emacsはグラフィカルなデスクトップ環境やX Window Systemのようなウィンドウシステムとは異なる意味で“ウィンドウ(window)”という単語を使用します。EmacsがX上で実行されているときはXのグラフィカルなXウィンドウは、Emacsでの(1つ以上のEmacsウィンドウを含んだ)フレームになります。Emacsがテキスト端末上で実行されているときはフレームが端末スクリーン全体を占有します。
Xのウィンドウとは異なり、Emacsのウィンドウはタイル表示(tiled)されるので、フレームの領域内でオーバーラップされることは決してありません。あるウィンドウが作成、リサイズ、削除されるとき変更されたウィンドウスペースの変更は各ウィンドウの調整により取得・譲与されるので、そのフレームの総領域に変化はありません。
この関数はobjectがウィンドウ(バッファーの表示有無に関わらず)ならt
、それ以外はnil
をリターンする。
生きたウィンドウ(live window)とは、あるフレーム内で実際にバッファーを表示しているウィンドウのことです。
この関数はobjectが生きたウィンドウならt
、それ以外はnil
をリターンする。生きたウィンドウとはバッファーを表示するウィンドウのこと。
各フレーム内のウィンドウはウィンドウツリー(window tree)内へと組織化されます。Windows and Framesを参照してください。それぞれのウィンドウツリーのリーフノード(leaf nodes)は、実際にバッファーを表示している生きたウィンドウです。ウィンドウツリーの内部ノード(internal node)は内部ウィンドウ(internal windows)と呼ばれ、これらは生きたウィンドウではありません。
有効なウィンドウ(valid window)とは、生きたウィンドウか内部ウィンドウのいずれかです。有効なウィンドウにたいしては、それを削除(delete)、すなわちそのウィンドウのフレームから削除することができます(Deleting Windowsを参照)。その場合、それは有効なウィンドウではなくなりますが、それを表すLispオブジェクトは依然として他のLispオブジェクトから参照されたままかもしれません。削除されたウィンドウは保存されたウィンドウ設定(window configuration)をリストアすることにより再び有効にすることができます(Window Configurationsを参照)。
window-valid-p
により、削除されたウィンドウから有効なウィンドウを区別できます。
この関数はobjectが生きたウィンドウかウィンドウツリー内の内部ウィンドウならt
をリターンする。それ以外(objectが削除されたウィンドウの場合も含む)はnil
をリターンする。
それぞれのフレーム内において、常にただ1つのEmacsウィンドウがそのフレームで選択されている(selected within the
frame)として指定されます。選択されたフレームにたいしてそのウィンドウは選択されたウィンドウ(selected
window)と呼ばれます。選択されたウィンドウは編集のほとんどが行われるウィンドウであり、選択されたウィンドウに表示されるカーソルがあるウィンドウです(Cursor Parametersを参照)。テキストの挿入や削除を行うキーボード入力もそのウィンドウにたいして行われます。選択されたウィンドウのバッファーは、通常はset-buffer
が使用された場合を除いてカレントバッファーでもあります(Current Bufferを参照)。選択されていないフレームでは、そのフレームが選択されたときはフレームで選択されていたウィンドウが選択されたウィンドウになります。Selecting Windowsを参照してください。
この関数は選択されたウィンドウをリターンする(これは常に生きたウィンドウ)。
たとえばFollowモード((emacs)Follow Modeを参照)の管理下では、あるウィンドウが単独で表示可能な部分より大きい部分をそのウィンドウにまとめて表示するように、複数のウィンドウが集合かつ協調してバッファーを表示することがあります。そのようなウィンドウグループ(window
group)を1つのエンティティーとしてとらえると便利なことがよくあります。window-group-start
(Window Start and Endを参照)のようないくつかの関数では、グループ全体としてウィンドウの1つを引数に与えることにより、これを行うことができます。
選択されたウィンドウがウィンドウグループのメンバーなら、この関数はそのバッファーの最前箇所を表示するウィンドウが先頭になる順序で、グループ内のウィンドウのリストをリターンする。それ以外なら、この関数は選択されたウィンドウだけを含むリストをリターンする。
バッファーローカル変数selected-window-group-function
が関数にセットされているときは、選択されたウィンドウはグループの一部とみなされる。この場合には、selected-window-group
はその関数を引数なしで呼び出し、その結果をリターンする(これはそのグループ内のウィンドウのリストであること)。