コマンド C-x o (other-window)
を使用して別のウィンドウを選択すると、ライブウィンドウを特定の順序で移動します。どのようなウィンドウ構成であっても、この順序が変わることはありません。これは
ウィンドウの巡回順序 と呼ばれます。
順序は、各フレームのウィンドウツリーを深さ優先探索し、ツリーの葉ノードであるライブウィンドウを取得することで決定されます(ウィンドウとフレームを参照)。ミニバッファがアクティブな場合は、ミニバッファウィンドウも含まれます。順序は循環しているため、シーケンスの最後のウィンドウの後には最初のウィンドウが続きます。
この関数は、ウィンドウの循環順において window の次に来るライブウィンドウを返します。window にはライブウィンドウを指定する必要があります。省略した場合や nil を指定した場合は、選択中のウィンドウがデフォルトとなります。
オプション引数 minibuf
は、ミニバッファウィンドウを循環順列に含めるかどうかを指定します。通常、minibuf が nil のとき、ミニバッファウィンドウは現在アクティブな場合にのみ含まれます。これは C-x o
の動作と一致します。(なお、ミニバッファウィンドウは、そのミニバッファが使用されている限りアクティブです。ミニバッファ を参照してください。)
minibuf が t
の場合、循環順序にはすべてのミニバッファウィンドウが含まれます。minibuf が t でも nil
でもない場合、ミニバッファウィンドウはアクティブであっても含まれません。
オプション引数 all-frames で、対象とするフレームを指定します:
nil は、window
のフレーム上のウィンドウを考慮することを意味します。ミニバッファウィンドウが考慮される場合(minibuf
引数で指定)、ミニバッファウィンドウを共有するフレームも同様に考慮されます。
t は、存在するすべてのフレーム上のウィンドウを考慮することを意味します。
visible は、表示されているすべてのフレームのウィンドウを考慮することを意味します。
複数のフレームを考慮する場合、それらのフレームの順序を、すべてのライブフレームのリストと同じ順序で連結することで、循環順序が得られます(Finding All Framesを参照)。
この関数は、ウィンドウの循環順において window
の直前に位置するライブウィンドウを返します。その他の引数の扱いは next-window
と同様です。
この関数は、ライブウィンドウを、ウィンドウの循環順において選択済みウィンドウから count 番目の位置に選択します。count が正の数の場合は count 個先のウィンドウをスキップし、count が負の数の場合は −count 個前のウィンドウをスキップし、count が 0 の場合は、単に選択済みウィンドウを再選択します。対話的に呼び出された場合、count は数値のプレフィックス引数となります。
オプション引数 all-frames は、next-window に対する nil や minibuf 引数と同様に、next-window
と同じ意味を持ちます。対話的に呼び出された場合、all-frames は常に nil となるため、選択済みフレーム上のウィンドウのみが選択可能です。
選択されたウィンドウの other-window パラメータが関数であり、かつ ignore-window-parameters が nil
である場合、この関数の通常の動作ではなく、引数 count と all-frames を指定してその関数が呼び出されます。
そうでない場合、この関数は関数 window-no-other-p(次を参照)が nil を返すウィンドウを選択しません。
この関数は、other-window のようなコマンドや get-lru-window のような関数によって window
が「その他」のウィンドウとして使用されない場合に、non-nil
を返します(後述)。また、選択中のウィンドウを削除する際(ウィンドウの削除
を参照)に、新たに選択するウィンドウを指定する必要がある場合にも呼び出されます。
より正確には、この関数は、window のパラメータ no-other-window が nil 以外であり、かつ
ignore-window-parameters が nil である場合に non-nil
を返します。それ以外の場合は nil を返します。
なお、この関数が nil を返す場合、必ずしも window が選択可能であるとは限りません。例えば、ツールチップウィンドウ(Emacs ウィンドウの基本概念 を参照)では、no-other-window パラメータがデフォルトで t
に設定されていますが、選択することはできません。
この関数は、ライブウィンドウごとに fun 関数を1回呼び出し、ウィンドウを引数として渡します。
ウィンドウの循環順に従います。オプション引数 minibuf および all-frames で含めるウィンドウの集合を指定します。これらの引数は next-window と同じです。all-frames
でフレームを指定した場合、最初に走査されるウィンドウはそのフレーム上の最初のウィンドウ(frame-first-window で返されるウィンドウ)であり、必ずしも選択されたウィンドウとは限りません。
fun がウィンドウの分割や削除によってウィンドウ構成を変更したとしても、それによって走査対象となるウィンドウの集合が変わることはありません。この集合は、fun を初めて呼び出す前に決定されています。
この関数は、選択されたウィンドウが唯一のアクティブなウィンドウである場合は t を、そうでない場合は
nil を返します。
ミニバッファウィンドウがアクティブな場合は、通常そのことが考慮されます(そのため、この関数は nil
を返します)。ただし、オプション引数 no-mini が nil 以外の場合、ミニバッファウィンドウがアクティブであっても無視されます。オプション引数 all-frames は next-window
と同じ意味を持ちます。
以下の関数は、何らかの条件を満たすウィンドウを選択することなく、そのウィンドウを返します。
この関数は、ヒューリスティックに直近で使用されていないライブウィンドウを返します。直近で使用されていないウィンドウとは、直近で選択されていないウィンドウ――すなわち、その使用時刻が他のすべてのライブウィンドウの使用時刻よりも短いウィンドウのことです(ウィンドウの選択を参照)。オプション引数 all-frames は、next-window
と同様の意味を持ちます。
全角ウィンドウが存在する場合、それらのウィンドウのみが対象となります。ミニバッファウィンドウが候補になることはありません。専用ウィンドウ(専用ウィンドウを参照)は、オプション引数 dedicated が nil
以外である場合を除き、候補になることはありません。選択されたウィンドウが唯一の候補である場合を除き、そのウィンドウが返されることはありません。ただし、オプション引数
not-selected が nil
以外である場合、この関数は nil を返します。オプション引数 no-other が nil 以外である場合、window-no-other-p(ウィンドウの循環順序を参照)が nil 以外を返すウィンドウは、決して返されないことを意味します。
この関数は get-lru-window
と同様ですが、代わりに直近で使用されたウィンドウを返します。直近で使用されたウィンドウ
とは、最も最近選択されたウィンドウ――すなわち、使用時刻が他のすべてのアクティブなウィンドウの使用時刻を上回るウィンドウのことです(ウィンドウの選択を参照)。引数の意味は get-lru-window と同様です。
実際には、直近で使用されたウィンドウが常に選択状態となるため、通常はこの関数を nil not-selected 以外の引数のみで呼び出すのが適切です。
この関数は、面積(高さ×幅)が最大となるウィンドウを返します。同じサイズの候補ウィンドウが2つある場合は、選択されたウィンドウを起点としたウィンドウの巡回順において、先に現れる方を優先します。引数の意味は
get-lru-window と同様です。
この関数は、ウィンドウを循環順に順次処理し、各ウィンドウを引数として関数 predicate
を呼び出します。述語がいずれかのウィンドウに対して nil
以外を返した場合、この関数は処理を終了し、そのウィンドウを返します。そのようなウィンドウが見つからない場合、戻り値は default(デフォルトは nil)となります。
オプション引数 minibuf および all-frames
は検索対象のウィンドウを指定するもので、next-window と同様の意味を持ちます。