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


27.15 Window History

ウィンドウはそれぞれ、リスト内に以前表示されていたバッファーと、それらのバッファーがウィンドウから削除された順序を記憶しています。このヒストリーが、たとえばreplace-buffer-in-windows(Buffers and Windowsを参照)により使用されます。このリストはEmacsにより自動的に保守されますが、これを明示的に調べたり変更するために、以下の関数を使用できます:

Function: window-prev-buffers &optional window

この関数は、windowの前のコンテンツを指定するリストをリターンする。オプション引数windowには生きたウィンドウを指定すべきであり、デフォルトは選択されたウィンドウである。

リスト要素はそれぞれ、(buffer window-start window-pos)という形式をもつ。ここでbufferは、そのウィンドウで前に表示されていたウィンドウ、window-startはそのバッファーが最後に表示されていたときのウィンドウのスタート位置(Window Start and Endを参照)、window-poswindow内にそのバッファーが最後に表示されていたときのポイント位置(Window Pointを参照)である。

このリストは順序付きで、より前の要素がより最近に表示されたバッファーに対応しており、通常は最初の要素がそのウィンドウからもっとも最近削除されたバッファーに対応する。

Function: set-window-prev-buffers window prev-buffers

この関数は、windowの前のバッファーを、prev-buffersの値にセットする。引数windowは生きたウィンドウでなければならず、デフォルトは選択されたウィンドウである。引数prev-buffersは、window-prev-buffersによりリターンされるリストと同じ形式であること。

これらに加えて、それぞれのバッファーは次バッファー(next buffers)のリストを保守します。これはswitch-to-prev-buffer(以下参照)により再表示されたバッファーのリストです。このリストは主に、切り替えるバッファーを選択するために、switch-to-prev-bufferswitch-to-next-bufferにより使用されます。

Function: window-next-buffers &optional window

この関数は、switch-to-prev-bufferを通じてwindow内に最近表示されたバッファーのリストをリターンする。window引数は、生きたウィンドウかnil(選択されたウィンドウの意)でなければならない。

Function: set-window-next-buffers window next-buffers

この関数は、windowの次バッファーリストを、next-buffersにセットする。window引数は、生きたウィンドウかnil(選択されたウィンドウの意)であること。引数next-buffersは、バッファーのリストであること。

以下のコマンドは、bury-bufferunbury-bufferのように、グローバルバッファーリストを巡回するために使用できます。ただし、これらはグローバルバッファーリストではなく、指定されたウィンドウのヒストリーリストのしたがって巡回します。それに加えて、これらはウィンドウ固有なウィンドウのスタート位置とポイント位置をリストアし、すでに他のウィンドウに表示されているバッファーをも表示できます。特にswitch-to-prev-bufferコマンドは、ウィンドウにたいする置き換えバッファーを探すためにreplace-buffer-in-windowsbury-bufferquit-windowにより使用されます。

Command: switch-to-prev-buffer &optional window bury-or-kill

このコマンドは、window内に前のバッファーを表示する。引数windowは生きたウィンドウ、またはnil(選択されたウィンドウの意)であること。オプション引数bury-or-killが非nil、それはwindow内にカレントで表示されているバッファーは今まさにバリーもしくはkillされるバッファーであり、したがって将来におけるこのコマンドの呼び出しで、このバッファーに切り替えるべきではないことを意味する。

前のバッファーは通常、window内にカレントで表示されているバッファーの前に表示されていたバッファーである。しかし、バリーまたはkillされたバッファー、または直近のswitch-to-prev-buffer呼び出しですでに表示されたバッファーは、前のバッファーとして適格とはならない。

このコマンドを繰り返して呼び出すことにより、window内で前に表示されたすべてのバッファーが表示されてしまった場合、将来の呼び出しにおいては、windowが表示されているフレームのバッファーリスト(Buffer Listを参照)から、そのフレームの他のウィンドウで表示済みのバッファーをスキップするようにして、バッファーを表示するだろう。

Command: switch-to-next-buffer &optional window

このコマンドは、window内の次バッファーに切り替える。つまり、window内での最後のswitch-to-prev-bufferコマンドの効果をアンドゥする。引数windowは生きたウィンドウであること。デフォルトは選択されたウィンドウである。

アンドゥ可能なswitch-to-prev-bufferの直近の呼び出しが存在しない場合、この関数はwindowが表示されているフレームのバッファーリスト(Buffer Listを参照)からバッファーの表示を試みる。

デフォルトでは、switch-to-prev-bufferswitch-to-next-bufferは、同一フレーム上の他のウィンドウで表示済みのバッファーに切り替えることができます。以下のオプションは、この挙動をオーバーライドするために使用できます。

User Option: switch-to-visible-buffer

この変数が非nilの場合、switch-to-prev-bufferおよびswitch-to-next-bufferは、そのバッファーが当該ウィンドウで過去に表示されていれば、同一フレーム上ですでに可視のバッファーに切り替えることができる。nilの場合、switch-to-prev-bufferおよびswitch-to-next-bufferは、同一フレーム上ですでに可視なバッファーへの切り替えを常に避けるよう試みる。デフォルトはt