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


29.11 バッファーとウィンドウ

このセクションではウィンドウのコンテンツを調べたりセットするための低レベルな関数を説明します。ウィンドウ内に特定のバッファーを表示するための高レベルな関数についてはウィンドウ内のバッファーへの切り替えを参照してください。

Function: window-buffer &optional window

この関数はwindowが表示しているバッファーをリターンする。windowが省略またはnilの場合のデフォルトは選択されたウィンドウ。windowが内部ウィンドウならこの関数はnilをリターンする。

Function: set-window-buffer window buffer-or-name &optional keep-margins

この関数はwindowbuffer-or-nameを表示させる。windowは生きたウィンドウであること。nilの場合のデフォルトは選択されたウィンドウ。buffer-or-nameはバッファー、あるいは既存のバッファー名であること。この関数は選択されていたウィンドウを変更せず、カレントバッファーも直接変更しない(カレントバッファーを参照)。リターン値はnil

windowがあるバッファーにたいして特に専用(strongly dedicated)であり、かつbuffer-or-nameがそのバッファーを指定しなければ、この関数はエラーをシグナルする。専用のウィンドウを参照のこと。

デフォルトではこの関数は指定されたバッファーのローカル変数にもとづいてwindowの位置、ディスプレイマージン、フリンジ幅、スクロールバーのセッティングをリセットする。しかしオプション引数keep-marginsが非nilなら、windowのディスプレイマージンおよびフリンジとスクロールバーのセッティングは未変更のままにする。

アプリケーションを記述する際には直接set-window-bufferを呼び出すのではなく、通常はdisplay-buffer (バッファーを表示するウィンドウの選択を参照)やウィンドウ内のバッファーへの切り替えで説明する高レベルの関数を使用すること。

これはwindow-scroll-functionsの後にwindow-configuration-change-hookを実行する。ウィンドウのスクロールと変更のためのフックを参照のこと。

Variable: buffer-display-count

このバッファーローカル変数はウィンドウ内にバッファーが表示された回数を記録する。。これはそのバッファーにたいしてset-window-bufferが呼び出されるたびに増分される

Variable: buffer-display-time

このバッファーローカル変数はバッファーがウィンドウに最後に表示された時刻を記録する。バッファーが表示されたことがなければnilをリターンする。これはそのバッファーにたいしてset-window-bufferが呼び出されるたびにcurrent-timeがリターンする値により更新される(時刻を参照)。

Function: get-buffer-window &optional buffer-or-name all-frames

この関数はウィンドウのサイクル順内で選択されたウィンドウを起点に、buffer-or-nameを表示する最初のウィンドウをリターンする(ウィンドウのサイクル順を参照)。そのようなウィンドウが存在しなければリターン値はnil

buffer-or-nameはバッファーかバッファーの名前であること。省略またはnilの場合のデフォルトはカレントバッファー。オプション引数all-framesには考慮するウィンドウを指定する。

  • tはすべての既存フレーム上のウィンドウを考慮することを意味する。
  • visibleはすべての可視フレーム上のウィンドウを考慮することを意味する。
  • 0はすべての可視またはアイコン化されたフレーム上のウィンドウを考慮することを意味する。
  • フレームを指定すると、そのフレーム上のウィンドウだけを考慮することを意味する。
  • その他の値は選択されたフレーム上のウィンドウを考慮することを意味する。

これらの意味はnext-windowall-frames引数の場合とは若干異なることに注意(ウィンドウのサイクル順を参照)。この不一致の解消のためにEmacsの将来のバージョンにおいて、この関数は変更されるかもしれない。

Function: get-buffer-window-list &optional buffer-or-name minibuf all-frames

この関数はその時点でbuffer-or-nameを表示している、すべてのウィンドウのリストをリターンする。buffer-or-nameはバッファーまたは既存バッファーの名前であること。省略またはnilの場合のデフォルトはカレントバッファー。カレントで選択されたウィンドウがbuffer-or-nameを表示していれば、それはこの関数がリターンするリストの先頭となる。

引数minibufall-framesは、関数next-windowの場合と同じ意味をもつ(ウィンドウのサイクル順を参照)。all-frames引数は、get-buffer-windowの場合と正確に同じようには振る舞わないことに注意。

Command: replace-buffer-in-windows &optional buffer-or-name

このコマンドはbuffer-or-nameを表示しているすべてのウィンドウで、それを他の何らかのバッファーに置き換える。buffer-or-nameはバッファーまたは既存のバッファーの名前であること。省略またはnilの場合のデフォルトはカレントバッファー。

各ウィンドウで置き換えられるバッファーはswitch-to-prev-bufferを通じて選択される(ウィンドウのヒストリーを参照)。サイドウィンドウ(サイドウィンドウを参照)を除き、buffer-or-nameを表示している専用ウィンドウは可能ならすべて削除される(専用のウィンドウを参照)。そのようなウィンドウがそのフレームで唯一のウィンドウで、かつ同一端末上に他のフレームが存在する場合には、そのフレームも同様に削除される。その端末上の唯一のフレームの唯一のウィンドウの場合は、いずれにせよそのバッファーは置き換えられる。