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


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

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

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はバッファー、あるいは既存のバッファー名であること。この関数は選択されていたウィンドウを変更せず、カレントバッファーも直接変更しない(Current Bufferを参照)。リターン値はnil

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

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

アプリケーションを記述する際には直接set-window-bufferを呼び出さずに、通常はSwitching Buffersで説明する高レベルの関数を使用すること。

これはwindow-scroll-functionsの後にwindow-configuration-change-hookを実行する。Window Hooksを参照のこと。

Variable: buffer-display-count

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

Variable: buffer-display-time

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

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

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

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

これらの意味はnext-windowall-frames引数の場合とは若干異なることに注意(Cyclic Window Orderingを参照)。この不一致の解消のために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の場合と同じ意味をもつ(Cyclic Window Orderingを参照)。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を通じて選択される(Window Historyを参照)。buffer-or-nameを表示している専用ウィンドウは可能ならすべて削除される(Dedicated Windowsを参照)。そのようなウィンドウがそのフレームで唯一のウィンドウで、かつ同一端末上に他のフレームが存在する場合には、そのフレームも同様に削除される。その端末上の唯一のフレームの唯一のウィンドウの場合は、いずれにせよそのバッファーは置き換えられる。