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


29.27 ウィンドウのパラメーター

このセクションではウィンドウに追加の情報を関連付けるために使用できるウィンドウパラメーターを説明します。

Function: window-parameter window parameter

この関数はwindowparameterの値をリターンする。windowのデフォルトは選択されたウィンドウ。windowparameterにたいするセッティングがなければ、この関数はnilをリターンする。

Function: window-parameters &optional window

この関数はwindowのすべてのパラメーターと値をリターンする。windowのデフォルトは選択されたウィンドウ。リターン値はnil、または(parameter . value)という形式をもつ要素からなる連想リスト。

Function: set-window-parameter window parameter value

この関数はwindowparameterの値にvalueをセットしてvalueをリターンする。windowのデフォルトは選択されたウィンドウ。

デフォルトではウィンドウ構成(window configuration)やウィンドウ状態(states of windows)の保存とリストアを行う関数は、ウィンドウパラメーターについては関知しません(ウィンドウの構成を参照)。これはsave-window-excursionのボディー内でパラメーターの値を変更したときは、そのマクロのexit時に以前の値がリストアされないことを意味します。これはまた以前にwindow-state-getで保存されたウィンドウ状態をwindow-state-putでリストアしたときは、クローンされたすべてのウィンドウのパラメーターがnilにリセットされることも意味します。以下の変数によってこの標準の挙動をオーバーライドできます:

Variable: window-persistent-parameters

この変数はcurrent-window-configurationwindow-state-getにより保存、set-window-configurationwindow-state-putによりリストアされるパラメーターを指定するalistである。ウィンドウの構成を参照のこと。

このalistの各エントリーのCARはパラメーターを指定するシンボル。CDRは以下のいずれかであること:

nil

この値はそのパラメーターがwindow-state-getcurrent-window-configurationのいずれによっても保存されていないことを意味する。

t

この値はそのパラメーターがcurrent-window-configuration、および(writable引数がnilなら)window-state-getにより保存されたことを意味する。

writable

これはそのパラメーターが無条件でcurrent-window-configurationwindow-state-getの両方により保存されたことを意味する。この値は入力構文(read syntax)をもたないパラメーターに使用するべきではない。使用した場合には、別のセッションでwindow-state-putを呼び出すとinvalid-read-syntaxエラーで失敗するだろう。

いくつかの関数(特にdelete-windowdelete-other-windowssplit-window)は、window引数で指定されたウィンドウがその関数の名前と同じ名前のパラメーターセをもつ場合には特別な挙動を示すかもしれません。以下の変数を非nil値にバインドすることにより、そのような特別な挙動をオーバーライドできます:

Variable: ignore-window-parameters

この変数が非nilなら、いくつかの標準関数はウィンドウパラメーターを処理しない。現在のところ影響を受ける関数はsplit-windowdelete-windowdelete-other-windowsother-window

これらの関数の呼び出し周辺でアプリケーションはこの変数を非nilにバインドできる。これを行うと、そのアプリケーションはその関数のexit時に関連するすべてのウィンドウのパラメーターを正しく割り当てる責任をもつ。

以下のパラメーターは現在のところウィンドウ管理コードにより使用されています:

delete-window

このパラメーターはdelete-windowの実行に影響する(ウィンドウの削除を参照)。

delete-other-windows

このパラメーターはdelete-other-windowsの実行に影響する(ウィンドウの削除を参照)。

no-delete-other-windows

このパラメーターはそのウィンドウをdelete-other-windowsにより削除できないことをマークする(ウィンドウの削除を参照)。

split-window

このパラメーターはsplit-windowの実行に影響する(ウィンドウの分割を参照)。

other-window

このパラメーターはother-windowの実行に影響する(ウィンドウのサイクル順を参照)。

no-other-window

このパラメーターはそのウィンドウをother-windowによる選択が不可だとマークする(ウィンドウのサイクル順を参照)。

clone-of

このパラメーターはそのウィンドウがクローンされたことを指定する。これはwindow-state-getによりインストールされる(ウィンドウの構成を参照)。

window-preserved-size

このパラメーターはバッファー、方向(nilは垂直でtは水平)、ピクセル単位のサイズを指定する。そのウィンドウが指定されたバッファーを表示していて、かつ指示された方向のサイズがこのパラメーターで指定されたサイズと等しければ、Emacsはそのウィンドウの指示された方向のサイズを予約する。関数window-preserve-sizeによりこのパラメーターのインストールと更新が行われる(ウィンドウサイズの保持を参照)。

quit-restore

このパラメーターはバッファー表示関数によりインストールされて、quit-restore-windowにより参照される(ウィンドウのquitを参照)。これは4つの要素をもつリストであり、詳細はウィンドウのquitquit-restore-windowの説明を参照のこと。

window-side
window-slot

これらはサイドウィンドウを実装するために内部的に使用される(サイドウィンドウを参照)。

window-atom

このパラメーターはアトミックウィンドウを実装するために内部的に使用される(アトミックウィンドウを参照)。

mode-line-format

このパラメーターはウィンドウが表示されるたびにそのウィンドウのバッファーのバッファーローカル変数mode-line-format (モードラインの基礎を参照)の値を置き換える。シンボルnoneはそのウィンドウのモードライン表示の抑制を意味する。そのバッファーを表示する他のウィンドウのモードラインの表示とコンテンツは影響を受けない。

header-line-format

このパラメーターはウィンドウが表示されるたびにそのウィンドウのバッファーのバッファーローカル変数header-line-format (モードラインの基礎を参照)の値を置き換える。シンボルnoneはそのウィンドウのヘッダーライン表示の抑制を意味する。そのバッファーを表示する他のウィンドウのヘッダーラインの表示とコンテンツは影響を受けない。

tab-line-format

このパラメーターはウィンドウが表示されるたびにそのウィンドウのバッファーのバッファーローカル変数tab-line-format (モードラインの基礎を参照)の値を置き換える。シンボルnoneはそのウィンドウのタブライン表示の抑制を意味する。そのバッファーを表示する他のウィンドウのタブラインの表示とコンテンツは影響を受けない。

min-margins

このパラメーターの値はCARCDRが非nilのコンスセルなら、そのウィンドウの左ージンと右マージンの最小値を列数で指定する(マージン内への表示を参照)。与えられた場合には、Emacsはウィンドウを分割するか水平方向に縮小するかの判断にたいして、実際のマージン幅のかわりにこれらの値を使用する。

すべてのウィンドウにたいして、分割やリサイズ後にEmacsがマージンの自動調整をすることは決してない。これはそのウィンドウト分割のためにこのウィンドウのマージンを継承する新たなウィンドウニタイシテ、マージンを調整するためにこのパラメーターをセットするすべてのアプリケーション単独の責任である。window-configuration-change-hookwindow-size-change-functionsはいずれもこの用途に使用すること(ウィンドウのスクロールと変更のためのフックを参照)。

これはウィンドウ内でバッファーをセンタリングするために大きなマージンを使用するアプリケーションのサポート用にEmacsのバージョン25.1から導入されたパラメーターであり、それらのアプリケーションと排他となるよう留意して使用すること。Emacsの将来のバージョンで改善策により置換され得る。