GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Forcing-Redisplay.html ・ emacs-doc.conao3.com

42.2 再表示の強制

Emacsは通常、入力待ちの際に画面の再表示を試みます。以下の関数を使えば、Lispコードの途中で、実際に入力を待たずに即座に再表示を試みるようリクエストできます。

関数: redisplay &optional force

この関数は、直ちに再表示を試みます。オプション引数 force が nil 以外の場合、入力待ちで処理が中断されるのではなく、強制的に再表示が行われます。

この関数は、実際に再表示を試みた場合は t を、そうでない場合は nil を返します。t という値は、再表示が正常に完了したことを意味するわけではなく、新たに入力があったことで中断された可能性があります。

redisplay は直ちに再表示を試みますが、Emacs がフレームのどの部分を再表示するかを決定する仕組みを変更するものではありません。対照的に、以下の関数は、特定のウィンドウを(内容が完全に変更されたかのように)再表示待ちの処理に追加しますが、直ちに再表示を試みることはありません。

関数: force-window-update &optional object

この関数は、次にEmacsが再表示を行う際に、一部またはすべてのウィンドウを強制的に更新します。object がウィンドウである場合、そのウィンドウが更新されます。object がバッファまたはバッファ名である場合、そのバッファを表示しているすべてのウィンドウが更新されます。object が nil である(または省略されている)場合、すべてのウィンドウが更新されます。

この関数は直ちに再表示を行うわけではありません。Emacsは、入力を待機している間、あるいは関数 redisplay が呼び出された際に再表示を行います。

変数: pre-redisplay-function

再表示の直前に実行される関数です。再表示対象のウィンドウ集合を1つの引数として受け取ります。この集合には、選択中のウィンドウのみを意味する nil や、すべてのウィンドウを意味する t を指定できます。

変数: pre-redisplay-functions

このフックは再表示の直前に実行されます。再表示予定の各ウィンドウで1回ずつ呼び出され、current-buffer にはそのウィンドウに表示されているバッファが設定されます。