Next: , Previous: , Up: ウィンドウ   [Contents][Index]


29.8 ウィンドウの削除

ウィンドウを削除(delete)することにより、フレームのウィンドウツリーからウィンドウが取り除かれます。それが生きたウィンドウならスクリーンに表示されなくなります。内部ウィンドウならその子ウィンドウも削除されます。

ウィンドウを削除した後であっても、それへの参照が残っている限りはLispオブジェクトとして存在し続けます。ウィンドウ構成(window configuration)をリストアすることにより、ウィンドウの削除は取り消すことができます(ウィンドウの構成を参照)。

Command: delete-window &optional window

この関数は表示からwindowを削除してnilをリターンする。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。

ウィンドウ削除によりウィンドウツリーにウィンドウが何も残らなくなるか(それがフレーム内で唯一の生きたウィンドウの場合)、あるいはwindowのフレーム上の残りすべてのウィンドウがサイドウィンドウ(サイドウィンドウを参照)ならエラーがシグナルされる。windowがアトミックウィンドウ(アトミックウィンドウを参照)の一部なら、この関数はかわりにアトミックウィンドウのルートウィンドウの削除を試みる。

デフォルトではwindowが占めていたスペースは、(もしあれば)隣接する兄弟ウィンドウのうちの1つに与えられる。しかし変数window-combination-resizeが非nilなら、そのスペースは同一ウィンドウコンビネーション内の残りのすべてのウィンドウに比例的に分配される。See ウィンドウの再結合を参照のこと。

変数ignore-window-parametersnilの場合に限り、この関数の振る舞いはwindowのウィンドウパラメーターにより変更される可能性がある。ウィンドウパラメーターdelete-windowの値がtなら、この関数はその他すべてのウィンドウパラメーターを無視する。ウィンドウパラメーターdelete-windowが関数なら、通常のdelete-windowのかわりに引数windowでその関数が呼び出される。ウィンドウのパラメーターを参照のこと。

フレームの選択されたウィンドウをdelete-windowで削除したときは、別のウィンドウをそのフレームの新たな選択されたウィンドウにする必要があります。このとき選択されるウィンドウを以下のオプションで設定できます。

User Option: delete-window-choose-selected

このオプションでdelete-windowが選択されたウィンドウを削除した後に、かわりの選択するウィンドウを指定できる。可能な選択肢は

  • mru そのフレームでもっとも最近に使用したウィンドウを選択する(デフォルト)。
  • pos そのフレームで前に選択されていたポイントのフレーム座標を含むウィンドウを選択する。
  • nil そのフレームの最初のウィンドウ(frame-first-windowがリターンするウィンドウ)を選択する。

nilno-other-windowパラメーターをもつウィンドウは、そのフレームの他のすべてのウィンドウもこのパラメーターが非nil値をもつ場合しか選択されることはない。

Command: delete-other-windows &optional window

この関数は必要に応じて他のウィンドウを削除することにより、windowでフレームを充填する。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。windowがサイドウィンドウならエラーをシグナルする(サイドウィンドウを参照)。windowがアトミックウィンドウの一部なら、この関数はアトミックウィンドウのルートウィンドウによるフレームの重点を試みる(アトミックウィンドウを参照)。リターン値はnil

変数ignore-window-parametersnilの場合に限り、この関数の振る舞いは変更される可能性がある。ウィンドウパラメーターdelete-other-windowsの値がtなら、この関数は他のすべてのウィンドウパラメーターを無視する。ウィンドウパラメーターdelete-other-windowsの値が関数なら、delete-other-windowsの通常の動作のかわりに引数windowでその関数が呼び出される。ウィンドウのパラメーターを参照のこと。

さらにignore-window-parametersnilなら、この関数はno-delete-other-windowsパラメーターが非nilのウィンドウを削除しない。

Command: delete-windows-on &optional buffer-or-name frame

この関数はbuffer-or-nameを表示しているすべてのウィンドウにたいしてdelete-windowを呼び出すことによってそれらを削除する。buffer-or-nameはバッファー、またはバッファー名であること。省略またはnilの場合のデフォルトはカレントバッファー。指定されたバッファーを表示するウィンドウが存在しなければ、この関数は何も行わない。ミニバッファーが指定されるとエラーをシグナルする。

そのバッファーの表示に専用(dedicated)のウィンドウがあり、フレーム上でそれが唯一のウィンドウの場合には、それが端末上で唯一のフレームでなければこの関数はそのフレームも削除する。

オプション引数frameは操作を行うフレームがどれかを指定する:

  • nil すべてのフレームを処理することを意味する。
  • t 選択されたフレームを処理することを意味する。
  • visible 可視なすべてのフレームを処理することを意味する。
  • 0 可視またはアイコン化されたすべてのフレームを処理することを意味する。
  • フレーム そのフレームを処理することを意味する。

この引数の意味は、すべての生きたウィンドウを走査する他の関数(ウィンドウのサイクル順を参照)の場合とは異なることに注意。特にここでのtnilのもつ意味は、これら他の関数の場合とは逆になる。