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


37.2 強制的な再表示

Emacsは入力の待機時は常に再表示を試みます。以下の関数により実際に入力を待機することなく、Lispコードの中から即座に再表示を試みることを要求できます。

Function: redisplay &optional force

この関数は即座に再表示を試みる。オプション引数forceが非nilの場合には、入力が保留中なら横取りされるかわりに強制的に再表示が行われる。

この関数は実際に再表示が試行されたならt、それ以外はnilをリターンする。tという値は再表示の試行が完了したことを意味しない。新たに到着した入力に横取りされた可能性がある。

redisplayが即座に再表示を試みたとしても、Emacsがフレーム(複数可)のどの部分を再表示するか決定する方法が変更されるわけではありません。それとは対照的に以下の関数は特定のウィンドウを、(あたかもコンテンツが完全に変更されたかのように)保留中の再表示処理に追加します。しかし再描画を即座には試みません。

Function: force-window-update &optional object

この関数はEmacsが次に再表示を行う際にいくつか、あるいはすべてのウィンドウが更新されるよう強制する。objectがウィンドウならそのウィンドウ、バッファーやバッファー名ならそのバッファーを表示するすべてのウィンドウ、nil (または省略)ならすべてのウィンドウが更新される。

この関数は即座に再表示を行わない。再表示はEmacsが入力を待機時、または関数redisplay呼び出し時に行われる。

Variable: pre-redisplay-function

再表示の直前に実行される関数。これは再表示されるウィンドウセットを単一の引数として呼び出される。ウィンドウセットは選択されたウィンドウを意味するnil、すべてのウィンドウを意味するtを指定できる。

Variable: pre-redisplay-functions

このフックは再表示の直前に実行される。これは再表示されようとするウィンドウそれぞれにたいして、そのウィンドウに表示されているバッファーをcurrent-bufferにセットして1回呼び出される。