Элементы меню псевдонимов
Иногда полезно создавать элементы меню, использующие одну и ту же команду, но с разными условиями активации. Лучший способ сделать это в 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)
При использовании псевдонимов в меню часто бывает полезно отображать эквивалентные сочетания клавиш для реального имени команды, а не для псевдонимов (которые обычно не имеют сочетаний клавиш, кроме самого меню). Для этого нужно добавить свойство к символу псевдонима, отличное от nil menu-alias. Таким образом,
(put 'make-read-only 'menu-alias t) (put 'make-writable 'menu-alias t)
приводит к отображению в элементах меню для make-read-only и make-writable сочетаний клавиш для read-only-mode.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Alias-Menu-Items.html