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

24.4.9 モードライン書式のエミュレーション

format-mode-line 関数を使用すると、特定のモードライン構文に基づいて、モードラインやヘッダーラインに表示されるテキストを計算できます。

関数: format-mode-line format &optional face window buffer

この関数は、window のモードラインを生成する場合と同様に、format に従ってテキストの1行をフォーマットしますが、同時にそのテキストを文字列としても返します。引数 window のデフォルト値は選択中のウィンドウです。buffer が nil 以外の場合、使用されるすべての情報は buffer から取得されます。デフォルトでは window のバッファから取得されます。

value 文字列には通常、モードラインが持つことになるフェイスやキーマップなどに対応するテキストプロパティが設定されています。format で face プロパティが指定されていない文字には、face で決定されるデフォルト値が割り当てられます。face が t の場合、window が選択されていれば mode-line-active を、そうでなければ mode-line-inactive を表します。face が nil であるか、あるいは省略されている場合は、デフォルトのフェイスを表します。face が整数の場合、この関数が返す値にはテキストプロパティが設定されません。

また、face の値として他の有効なフェイスを指定することもできます。指定した場合、そのフェイスは、format でフェイスが指定されていない文字に対して face プロパティを提供します。

なお、mode-line、mode-line-inactive、またはheader-lineをfaceとして使用すると、書式付き文字列が返されるだけでなく、対応するフェイスの現在の定義を用いて、それぞれモード行またはヘッダー行が再表示される点に注意してください。(他のフェイスでは再表示は行われません。)

例えば、(format-mode-line header-line-format) は選択されたウィンドウのヘッダー行に表示されるテキストを返します(ヘッダー行がない場合は "" となります)。(format-mode-line header-line-format 'header-line) は同じテキストを返しますが、各文字がヘッダー行自体で表示される通りの外観となり、さらにヘッダー行も再描画されます。