23.18.1.4 Элементы меню-псевдонимов

Иногда полезно создавать элементы меню, которые используют одну и ту же команду, но с разными условиями включения. Лучший способ сделать это в Emacs сейчас — использовать расширенные элементы меню; до появления этой функции это можно было сделать, определяя команды-псевдонимы и используя их в элементах меню. Вот пример, который создает два псевдонима для read-only-mode и присваивает им разные условия включения:

(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.