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

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

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

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

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

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

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

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

  • nilwindowのフレーム上にあるウィンドウを考慮することを意味する。(minibuf引数で指定されたことにより)ミニバッファーウィンドウが考慮される場合には、ミニバッファーウィンドウを共有するフレームも考慮される。
  • t はすべての既存フレーム上のウィンドウを考慮することを意味する。
  • visible はすべての可視フレーム上のウィンドウを考慮することを意味する。
  • 0 は可視またはアイコン化されたすべてのフレーム上のウィンドウを考慮することを意味する。
  • フレーム は指定されたフレーム上のウィンドウを考慮することを意味する。
  • その他 はwindowのあるフレーム上のウィンドウを考慮して、それ以外は考慮しないことを意味する。

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

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の場合と同じ意味をもつ。

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

選択されたウィンドウのother-windowパラメーターが関数でignore-window-parametersnilなら、この関数の通常の処理のかわりに、other-windowパラメーターの関数が引数countall-framesで呼び出される。

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 no-other

この関数は発見的に最近もっとも使用されていない生きたウィンドウをリターンする。最近もっとも使用されていないウィンドウ(least recently used window)とは最近選択されたのがもっとも少ない、すなわち他のすべての生きたウィンドウより使用時間が少ないウィンドウのこと。オプション引数all-framesnext-windowの場合と同じ意味をもつ。

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

Function: get-mru-window &optional all-frames dedicated not-selected no-other

この関数はget-lru-windowと同様だが、かわりにもっとも最近使用されたウィンドウをリターンする。最近もっとも使用されたウィンドウ(most recently used window)とは最近選択されたのがもっとも多い、すなわち他のすべての生きたウィンドウより使用時間が多いウィンドウのこと。引数の意味はget-lru-windowと同様。

もっとも最近使用されたウィンドウは実際には常に選択されたウィンドウになるので、非nilnot-selected引数でこの関数を呼び出すことには通常は道理がある。

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

この関数はもっとも広い領域(高さ掛ける幅)のウィンドウをリターンする。同サイズの候補ウィンドウが2つある場合には、ウィンドウのサイクル順で選択されたウィンドウから数えて最初にあるウィンドウを優先する。引数の意味はget-lru-windowと同じ。

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

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

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


This page has generated for branch:work/emacs-30_69b16e5c63840479270d32f58daea923fe725b90, commit:5e3f74b56ff47b5bcef2526c70f53f749bbd45f6 to check Japanese translation.