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

24.4.6 モード線内の特性

モードラインでは、特定のテキストプロパティが意味を持ちます。faceプロパティはテキストの表示に影響し、help-echoプロパティはヘルプ文字列をテキストに関連付け、keymapはテキストをマウス操作に反応させることができます。

モードライン内のテキストの文字プロパティを指定する方法は4通りあります。

  1. textプロパティを持つ文字列をモードラインのデータ構造に直接格納できますが、それに関する注意点についてはモードラインのデータ構造を参照してください。
  2. モードラインにテキストプロパティを付与し、%-construct で ‘%12b’ のように記述すると、その %-construct の展開結果にも同じテキストプロパティが付与されます。
  3. (:propertize elt props…) 構文を使用して、elt に props で指定したテキストプロパティを付与します。
  4. モードラインのデータ構造に :eval form を含むリストを使用し、form が text プロパティを持つ文字列として評価されるようにしてください。

keymap プロパティを使用してキーマップを指定できます。このキーマップが実際に機能するのはマウスクリック時のみであり、文字キーやファンクションキーをバインドしても効果はありません。ポイントをモードラインに移動させることは不可能だからです。

モードラインが、non-nil risky-local-variable プロパティを持たない変数を参照する場合、その変数の値内で指定または設定されたテキストプロパティはすべて無視されます。これは、そうしたプロパティが呼び出される関数を指定する可能性があり、それらの関数がファイルローカル変数に由来する場合があるためです。