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