Previous: Window Parameters, Up: Windows [Contents][Index]
このセクションでは、あるウィンドウがそのバッファーの違う部分を表示したり、別のバッファーを表示したとき常にLispプログラムを実行可能にする方法について説明します。これを変更できる3つのアクションがあります。それはウィンドウのスクロール、ウィンドウ内でのバッファーの切り替え、ウィンドウのサイズ変更です。最初の2つのアクションはwindow-scroll-functions
、最後のアクションはwindow-size-change-functions
を実行します。
この変数はウィンドウのスクロールによりEmacsが再表示前に呼び出すべき関数のリストを保持する。そのウィンドウ内に異なるバッファーを表示したときもこれらの関数が実行される。
この変数はそれぞれの関数がウィンドウとウィンドウのdisplay-start位置という2つの引数を受け取るのでノーマルフックではない。呼び出し時にはwindow引数のdisplay-start位置は新たな値にセット済みであり、そのウィンドウに表示されるバッファーがカレントバッファーとしてセット済みである。
これらの関数はwindow-end
(Window Start and Endを参照)を使用する際には気をつけなければならない。最新の値が必要なら、それを確実に入力するためにupdate引数を使用しなければならない。
警告: ウィンドウのスクロール方法を変更するためにこの機能を使用してはならない。これはそのような用途のためにデザインされておらず、そのような使用では機能しないだろう。
この関数は指定されたwindow
(デフォルトは選択されたウィンドウ)にたいしてwindow-scroll-functions
を呼び出す。
この変数は理由は何であれ、任意のウィンドウのサイズが変更された場合に呼び出される関数のリストを保持する。これらの関数は再表示ごとに1回、サイズ変更が発生したフレーム上で1回呼び出される。
それぞれの関数はフレームを唯一の引数として受け取る。特定のウィンドウのサイズが変更されたかどうかを調べるにはwindow-pixel-width-before-size-change
およびwindow-pixel-width
のリターン値それぞれを、そのウィンドウにたいするwindow-pixel-height-before-size-change
およびwindow-pixel-height
と比較すればよい(Window Sizesを参照)。
これらの関数は、通常は関連するフレームにたいしてこのフックが最後に実行されて以降に、少なくとも1つのウィンドウが追加またはサイズが変更されたときだけ呼び出される。いくつかの稀なケースでは断続的にウィンドウが追加されてその後に削除された際にも実行される。この場合にはフレーム上でサイズが変更されたウィンドウが出現することはない。
フレームのウィンドウ構成が変更されるたびに実行されるノーマルフック。ウィンドウ構成の変更にはウィンドウの分割や削除、ウィンドウでの異なるバッファーの表示が含まれる。
このフックはウィンドウサイズの変更の追跡にも使用できる。しかしフレームサイズの変更やミニバッファーウィンドウ(Minibuffer Windowsを参照)の自動的なリサイズによる他のウィンドウのサイズ変更時には実行されない。ルールとしてwindow-size-change-functions
(上記参照)への関数の追加は、任意のウィンドウのサイズ変更を追跡する推奨方法である。
このフックのバッファーローカルな値は影響を受けるフレーム上の各ウィンドウにたいして、関係するウィンドウを選択して、そのバッファーをカレントにして1回実行される。グローバルな値は変更されたフレームにたいしてフレームを選択して1回実行される。
この関数は指定されたframe
(デフォルトは選択されたフレーム)にたいしてwindow-configuration-change-hook
を実行する。
加えてFont Lockフォント表示関数(Font Lock fontification
function)を登録するためにjit-lock-register
を使用できる。バッファーの一部が(再)フォント表示されたときは、ウィンドウがスクロールまたはサイズ変更されたという理由で、これが常に呼び出されるだろう。Other Font Lock Variablesを参照のこと。