Spec-Zone.ru › Elisp

Изменение меню

Когда вы вставляете новый элемент в существующее меню, вы, вероятно, захотите поместить его в определённое место среди уже имеющихся элементов меню. Если для добавления элемента использовать define-key, он обычно помещается в начало меню. Чтобы поместить его в другое место меню, используйте keymap-set-after:

Функция: keymap-set-after map key binding &optional after

Определяет привязку в map для key со значением binding, так же как keymap-set (см. Изменение привязок клавиш), но помещает привязку в map после привязки для события after. Аргумент key должен представлять один элемент меню или одну клавишу и соответствовать key-valid-p (см. Последовательности клавиш). after должен быть одним типом события — символом или знаком, а не последовательностью. Новая привязка помещается после привязки для after. Если after равен t или не указан, новая привязка помещается последней, в конец карты клавиш. Однако новые привязки добавляются перед любой унаследованной картой клавиш.

Пример:

(keymap-set-after my-menu "<drink>"
  '("Drink" . drink-command) 'eat)

создаёт привязку для фиктивной функциональной клавиши DRINK и помещает её сразу после привязки для EAT.

Вот как вставить элемент «Работа» в меню «Сигналы» режима Shell после элемента break:

(keymap-set-after shell-mode-map "<menu-bar> <signals> <work>"
  '("Work" . work-command) 'break)

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Modifying-Menus.html

Spec-Zone.ru

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