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

23.18.1 メニューの定義

キーマップに全体プロンプト文字列(キーマップの要素として表示される文字列)がある場合、それはメニューとして機能します。(キーマップの形式を参照してください。)この文字列は、メニューのコマンドの目的を説明するものである必要があります。Emacsは、メニューの表示に使用されるツールキット(もしあれば)に応じて、場合によっては全体プロンプト文字列をメニュータイトルとして表示します。21 キーボードメニューでも全体プロンプト文字列が表示されます。

プロンプト文字列を指定してキーマップを作成する最も簡単な方法は、make-keymap、make-sparse-keymap(キーマップの作成を参照)、またはdefine-prefix-command(define-prefix-commandの定義を参照)を呼び出す際に、その文字列を引数として指定することです。キーマップをメニューとして動作させたくない場合は、プロンプト文字列を指定しないでください。

関数: keymap-prompt keymap

この関数は、keymap の全体のプロンプト文字列を、ない場合は nil を返します。

メニュー項目は、キーマップにおけるバインディングです。各バインディングはイベントタイプを定義に関連付けますが、イベントタイプはメニューの表示には影響しません。(通常、メニュー項目のバインディングのイベントタイプには、キーボードでは生成できないシンボルである擬似イベントを使用します。)メニューは、キーマップにおいてこれらのイベントに対応するバインディングのみから生成されます。

メニュー内の項目の順序は、キーマップ内のバインドの順序と同じです。define-key は新しいバインドを先頭に追加するため、順序を重視する場合は、メニューの下から上に向かって項目を定義してください。既存のメニューに項目を追加する際は、keymap-set-after を使用してメニュー内での位置を指定できます(メニューの変更を参照)。


脚注

(21)

テキスト端末など、ツールキットを使用しないメニューで必要となります。