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

23.18.1.4 エイリアスメニュー項目

同じコマンドを使いつつ、有効化条件が異なるメニュー項目を作成すると便利な場合があります。現在のEmacsでこれを実現する最善の方法は、拡張メニュー項目を使用することです。この機能が登場する前は、エイリアスコマンドを定義し、それをメニュー項目で使用することで実現できました。以下に、read-only-mode に対して2つのエイリアスを作成し、それぞれに異なる有効化条件を設定する例を示します。

(defalias 'make-read-only 'read-only-mode)
(put 'make-read-only 'menu-enable '(not buffer-read-only))
(defalias 'make-writable 'read-only-mode)
(put 'make-writable 'menu-enable 'buffer-read-only)

メニューでエイリアスを使用する場合、エイリアス(通常はメニュー自体以外にキーバインドを持たない)ではなく、実際のコマンド名に対応するキーバインドを表示させると便利なことが多いです。これを実現するには、エイリアスシンボルに non-nil menu-alias プロパティを指定します。したがって、

(put 'make-read-only 'menu-alias t)
(put 'make-writable 'menu-alias t)

make-read-only と make-writable のメニュー項目に、read-only-mode のキーボードバインドが表示されるようになります。