Previous: Menu Separators, Up: Defining Menus [Contents][Index]
“同じ”コマンドを使用するが、有効条件が異なるメニューアイテムを作成すると便利な場合が時折あります。Emacsでこれを行う最善の方法は、拡張メニューアイテム(extended
menu
item)です。この機能が存在する以前は、エイリアスコマンドを定義して、それらをメニューアイテムで使用することによりこれを行っていました。以下は、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)
メニュー内でエイリアスを使用するときは、エイリアスではなく“実際”のコマンド名にたいする等価なキーバインディングを表示するのが便利な場合が多々あります(エイリアスはメニュー自身を除きキーバインディングを通常はもたない)。これを要求するには、エイリアスシンボルにmenu-alias
プロパティに非nil
を与えます。したがって、
(put 'make-read-only 'menu-alias t) (put 'make-writable 'menu-alias t)
は、make-read-only
とmake-writable
にたいするメニューアイテムに、read-only-mode
のキーバインディングを表示します。