Spec-Zone.ru › Elisp

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

Иногда полезно создавать элементы меню, использующие одну и ту же команду, но с разными условиями активации. Лучший способ сделать это в 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API