format-mode-line
関数を使用すると、特定のモードライン構文に基づいて、モードラインやヘッダーラインに表示されるテキストを計算できます。
この関数は、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)
は同じテキストを返しますが、各文字がヘッダー行自体で表示される通りの外観となり、さらにヘッダー行も再描画されます。