Next: Side Windows, Previous: Dedicated Windows, Up: Windows [Contents][Index]
バッファーを表示するために使用しているウィンドウを削除したいときには、フレームからそのウィンドウを削除するためにdelete-window
やdelete-windows-on
を呼び出すことができます(Deleting Windowsを参照)。そのバッファーが別フレームで表示されているときには、かわりにdelete-frame
を呼び出したいと思うかもしれません(Deleting Framesを参照)。その一方でバッファーを表示するためにウィンドウが再利用されている場合には、関数switch-to-prev-buffer
を呼び出して前に表示されていたバッファーを表示したいと思うかもしれません(Window Historyを参照)。最終的にはそのウィンドウのバッファーをバリー(Buffer Listを参照)やkill(Killing Buffersを参照)したいと思うかもしれません。
以下のコマンドは、最初にどのようにバッファーを表示するウィンドウを取得するかという情報を使用して、上述で説明した処理の自動化を試みます。
このコマンドはwindowをquitしてそのバッファーをバリーする。引数windowは生きたウィンドウでなければならずデフォルトは選択されたウィンドウ。プレフィックス引数killが非nil
ならバッファーをバリーするかわりにkillする。これはウィンドウとそのバッファーを処理するために、次に説明する関数quit-restore-window
を呼び出す。
quit-window-hook
の関数は何か他のことを行う前に実行される。
この関数はwindowのquit後にウィンドウとウィンドウのバッファーを処理する。オプション引数windowは生きたウィンドウでなければならず、デフォルトは選択されたウィンドウ。この関数の挙動はwindowのquit-restore
パラメーターにより指定される4要素のリストにより決定される(Window Parametersを参照)。
quit-restore
パラメーターの1つ目の要素はwindow
(ウィンドウはdisplay-buffer
により特別に作られた)、frame
(別のフレームが作られた)、same
(ウィンドウは前と同じバッファーを表示する)、other
(ウィンドウは前と異なるバッファーを表示する)のシンボルのいずれか。frame
とwindow
はウィンドウがquitされる方法、same
とother
はwindowに以前に表示されていたバッファーの再表示に影響する。
パラメーターの2つ目の要素はシンボルwindow
、frame
、またはそのウィンドウに前に表示されていたバッファー、そのときのウィンドウstart位置、ウィンドウポイント位置、ウィンドウの高さを要素にもつリストのいずれか。windowのquit時にバッファーがまだ生きていれば、この関数はバッファーの表示にwindowを再利用するかもしれない。
3つ目の要素はパラメーター作成時に選択されていたウィンドウ。この関数がwindowを削除すると、それに続いてこの要素が指名するウィンドウを再選択する。
4つ目の要素は、その表示がこのパラメーターの生成を引き起こしたバッファー。この関数は指定されたwindowがまだそのバッファーを表示している場合のみそれを削除する。
この関数は、(1)
windowのquit-restore
パラメーターの1つ目の要素がwindow
かframe
、(2)
window
が以前に表示したバッファーの履歴をもたない、(3)
quit-restore
の4つ目の要素がwindowにカレントで表示中のバッファーを指定している場合のみwindowを削除する。windowがアトミックウィンドウ(Atomic Windowsを参照)の一部なら、かわりにアトミックウィンドウのルートウィンドウの削除を試みる。いずれの場合でもwindowが削除できない場合にはエラーのシグナルを回避しようと試みる。
windowがそのフレームで唯一のウィンドウであり、かつそのフレームの端末上に他のフレームが存在する場合には、オプション引数bury-or-killがそのウィンドウの処置を決定する。bury-or-killがkill
なら無条件でフレームは削除される。それ以外ではフレームの処遇はそのフレームを単一の引数とするframe-auto-hide-function
(以下参照)の呼び出しにより決定される。
quit-restore
パラメーターの3つ目の要素がバッファーのリストならウィンドウの開始 (Window Start and Endを参照)、ポイント(Window Pointを参照)、およびそのバッファーは死なずにバッファーは表示されてそれに応じてウィンドウの開始とポイントがセットされる。加えてwindowのバッファーが過去に一時的にリサイズされていた場合には、この関数はwindowの元の高さのリストアも試みる。
それ以外の場合には、以前に別のバッファーの表示にwindowが使用されていれば(Window Historyを参照)、その履歴中でもっとも最近のバッファーが表示される。いずれの場合でもwindowが削除されなければ、quit-restore
パラメーターはnil
にリセットされる。
オプション引数bury-or-killにはwindowを処理する方法を指定し、以下の値が処理される。
nil
これはバッファーを特別な方法で処理しないことを意味する。その結果としてwindowが削除されない場合には、switch-to-prev-buffer
の呼び出しにより通常はそのバッファーが再び表示されるだろう。
append
これはwindowが削除されない場合には、そのバッファーをwindowの前のバッファーリストの最後に移動するので、将来のswitch-to-prev-buffer
呼び出しでこのバッファーには切り替わることは少なくなる。これはそのバッファーをフレームのバッファーリストの最後への移動も行う。
bury
これはwindowが削除されない場合には、そのバッファーをwindowの前のバッファーリストから削除する。これはそのバッファーをフレームのバッファーリストの最後への移動も行う。この値はバッファーをkillすることなくswitch-to-prev-buffer
がこのバッファーに再び切り替えさせないようにする、もっとも信頼できる解決手段を提供する。
kill
これはwindowのバッファーをkillすることを意味する。
(interactive)
(display-buffer-record-window type window buffer) (set-window-buffer window buffer) (set-window-prev-buffers window nil)
ウィンドウのヒストリーをnil
にセットすることにより?、将来のquit-window
呼び出しが一緒にウィンドウを削除することが保証される。
以下のオプションはquitすべきウィンドウ、あるいはバリーすべきバッファーをもつウィンドウを1つだけ含むフレームを処理する方法を指定します。
このオプションで指定された関数は自動的にフレームを隠すために呼び出される。この関数はフレームを唯一の引数として呼び出される。
ここで指定される関数は選択されたウィンドウが専用(dedicated)であり、かつバリーされるバッファーを表示しているときにbury-buffer
(Buffer Listを参照)から呼び出される。またquitされるウィンドウのフレームがそのウィンドウのバッファーを表示するために特別に作成されたフレームで、かつそのバッファーがkillされないときにもquit-restore-window
(上記)から呼び出される。
デフォルトではiconify-frame
(Visibility of Framesを参照)を呼び出す。かわりにフレームをディスプレイから削除するdelete-frame
(Deleting Framesを参照)、フレームを不可視にするmake-frame-invisible
、フレームを変更せずに残すignore
、またはフレームを唯一の引数とする任意の関数のいずれかを指定できる。
このオプションで指定された関数は指定されたフレームが生きたウィンドウただ1つを含み、かつ同一端末上に少なくとも1つ他のフレームが存在する場合のみ呼び出されることに注意。
特定のフレームにたいしてここで指定した値は、そのフレームのフレームパラメーターauto-hide-function
でオーバーライドされるかもしれない(Frame Interaction Parametersを参照)。