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


28.14 ウィンドウのヒストリー

ウィンドウはそれぞれ、リスト内に以前表示されていたバッファーと、それらのバッファーがウィンドウから削除された順序を記憶しています。このヒストリーが、たとえばreplace-buffer-in-windows (Buffers and Windowsを参照)やウィンドウのquit (Quitting 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-bufferswindow-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-bufferswitch-to-next-bufferは同一フレーム上ですでに可視のバッファーに切り替えることができる。nilなら、switch-to-prev-bufferswitch-to-next-bufferは同一フレーム上ですでに可視なバッファーへの切り替えを常に避けるよう試みる。デフォルトはt