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


27.9 ウィンドウのサイクル順

他のウィンドウを選択するためにコマンドC-x o (other-window)を使う際には、特定の順番で生きたウィンドウを巡回します。与えられた任意のウィンドウ構成にたいして、この順序は決して変更されません。これはウィンドウのサイクル順序(cyclic ordering of windows)と呼ばれます。

この順序は、そのフレームのリーフノードである生きたウィンドウを取得するために、ツリーを深さ優先で走査することにより決定されます(Windows and Framesを参照)。ミニバッファーがアクティブな場合は、ミニバッファーウィンドウも含まれます。この順序は巡回的(cyclic)なので、この順序の最後のウィンドウの次には最初のウィンドウが配されます。

Function: next-window &optional window minibuf all-frames

この関数はウィンドウのサイクル順でwindowの次の生きたウィンドウをリターンする。windowは生きたウィンドウであること。省略またはnilの場合のデフォルトは選択されたウィンドウ。

オプション引数minibufは、サイクル順にミニバッファーウィンドウを含めるべきかどうかを指定する。通常は、minibufnilのときは、ミニバッファーウィンドウがカレントで“アクティブ”な場合のみミニバッファーウィンドウが含まれる。これは、C-x oの振る舞うと合致する(ミニバッファーが使用されている限りミニバッファーウィンドウはアクティブであることに注意。Minibuffersを参照のこと)。

minibuftなら、サイクル順にはすべてのミニバッファーウィンドウが含まれる。minibuftnilのいずれとも異なる場合には、たとえアクティブであってもミニバッファーウィンドウは含まれない。

オプション引数all-framesは考慮にするフレームを指定する:

複数のフレームが考慮される場合は、すべての生きたフレームのリストの順にしたがってそれらのフレームを順に追加することによりサイクル順を取得する(Finding All Framesを参照)。

Function: previous-window &optional window minibuf all-frames

この関数はウィンドウのサイクル順においてwindowの前に位置する生きたウィンドウをリターンする。その他の引数はnext-windowの場合と同様に処理される。

Command: other-window count &optional all-frames

この関数はウィンドウのサイクル順において、選択されたウィンドウからcount番目に位置する生きたウィンドウをリターンする。countが正の数ならcount個のウィンドウを前方にスキップし、負の数なら-count個のウィンドウを後方にスキップする。countが0なら選択されたウィンドウを単に再選択する.インタラクティブに呼び出された場合には、countはプレフィックス数引数。

オプション引数all-framesは、nilminibuf引数を指定したときのnext-windowの場合と同じ意味をもつ。

この関数は非nilのウィンドウパラメーターno-other-windowをもつウィンドウを選択しない。

Function: walk-windows fun &optional minibuf all-frames

この関数は生きたウィンドウそれぞれにたいしてウィンドウを引数に関数funを呼び出す。

これはウィンドウのサイクル順にしたがう。オプション引数minibufall-framesには、含まれるウィンドウセットを指定する。これらはnext-windowの引数の場合と同じ意味をもつ。all-framesがフレームを指定する場合には、最初に処理されるのはそのフレームの最初のウィンドウ(frame-first-windowがリターンするウィンドウ)であり、選択されたウィンドウである必要はない。

funがウィンドウの分割や削除によりウィンドウ構成を変更する場合でも、処理するウィンドウセットは初回のfun呼び出しに先立ち決定されるため変更されない。

Function: one-window-p &optional no-mini all-frames

この関数は選択されたウィンドウが唯一の生きたウィンドウならt、それ以外はnilをリターンする。

ミニバッファーウィンドウがアクティブなら、ミニバッファーウィンドウは通常は考慮される(そのためこの関数はnilをリターンする)。しかしオプション引数no-miniが非nilなら、たとえアクティブであってもミニバッファーウィンドウは無視される。オプション引数all-framesnext-windowの場合と同じ意味をもつ。

以下は何らかの条件を満足するウィンドウを、それらを選択することなくリターンする関数です:

Function: get-lru-window &optional all-frames dedicated not-selected

この関数は、発見的には“もっとも最近に使用された”ウィンドウであるような、生きたウィンドウをリターンする。オプション引数all-framesは、next-windowの場合と同じ意味をもつ。

フル幅のウィンドウが存在する場合にはは、それらのウィンドウだけが考慮される。ミニバッファーが候補になることは決してない。オプション引数dedicatednilなら、専用バッファー(Dedicated Windowsを参照)が候補になることは決してない。唯一の候補が選択されたウィンドウである場合以外は選択されたウィンドウを決してリターンしない。しかしオプション引数not-selectedが非nilなら、そのような場合でもこの関数はnilをリターンする。

Function: get-largest-window &optional all-frames dedicated not-selected

この関数は、もっとも大きいエリア(高さと幅の乗)をもつウィンドウをリターンする。オプション引数all-framesは検索するウィンドウを指定する。意味はnext-windowの場合と同様。

ミニバッファーウィンドウは決して候補とならない。オプション引数dedicatednilなら、専用ウィンドウ(Dedicated Windowsウィンドウを参照)は決して候補とならない。オプション引数not-selectedが非nilなら、選択されたウィンドウは決して候補にならない。オプション引数not-selectedが非nil、かつ唯一の候補が選択されたウィンドウなら、この関数はnilをリターンする。

同サイズの候補ウィンドウが2つある場合には、この関数はウィンドウのサイクル順で選択されたウィンドウから数えて最初にあるウィンドウを優先する。

Function: get-window-with-predicate predicate &optional minibuf all-frames default

この関数はウィンドウのサイクル順内の各ウィンドウにたいして、そのウィンドウを引数として関数predicateを順に呼び出す。いずれかのウィンドウにたいしてpredicateが非nilをリターンすると、この関数は処理を停止してそのウィンドウをリターンする。そのようなウィンドウが見つからなければリターン値はdefault (これのデフォルトはnil)。

オプション引数 minibufall-framesは検索するウィンドウを指定する。意味はnext-windowの場合と同様。