モードラインでは、特定のテキストプロパティが意味を持ちます。faceプロパティはテキストの表示に影響し、help-echoプロパティはヘルプ文字列をテキストに関連付け、keymapはテキストをマウス操作に反応させることができます。
モードライン内のテキストの文字プロパティを指定する方法は4通りあります。
(:propertize elt props…) 構文を使用して、elt に
props で指定したテキストプロパティを付与します。
:eval form
を含むリストを使用し、form が text プロパティを持つ文字列として評価されるようにしてください。
keymap
プロパティを使用してキーマップを指定できます。このキーマップが実際に機能するのはマウスクリック時のみであり、文字キーやファンクションキーをバインドしても効果はありません。ポイントをモードラインに移動させることは不可能だからです。
モードラインが、non-nil risky-local-variable
プロパティを持たない変数を参照する場合、その変数の値内で指定または設定されたテキストプロパティはすべて無視されます。これは、そうしたプロパティが呼び出される関数を指定する可能性があり、それらの関数がファイルローカル変数に由来する場合があるためです。