Код, который вы ищете:
(define-key keymap-1 (kbd "new prefix")
(lookup-key keymap-2 (kbd "old prefix")))
Обычно вам не нужно знать имена таблиц ключей, так как выражения (current-global-map)
и (current-local-map)
возвращают действующие глобальную и локальную карты. Хотя в руководстве по emacs сказано, что вы можете переназначить любую из функциональных клавиш, я обнаружил, что странные вещи могут случиться, если вы попытаетесь переназначить f1, f2, f3, f4 или f10. По этой причине я обычно повторно отображаю f5 или f6. В качестве примера из моего файла .emacs, код:
(add-hook 'planner-mode-hook
#'(lambda ()
(local-set-key (kbd "M-RET") 'muse-insert-list-item)
(local-set-key (kbd "M-S-RET") 'pcomplete)
(define-key (current-local-map) (kbd "<f5>")
(lookup-key (current-local-map) (kbd "C-c C-j")))))
устанавливает M-RET и MS-RET в режиме планирования, а также превращает префикс f5 в псевдоним Cc Cj в этом режиме.
Имейте в виду, однако, что это не всегда работает, поскольку lookup-key
кажется, понимает макросы, которые, к сожалению, являются законными в таблицах ключей. В таких случаях вы обычно можете найти способ обойти это. Спросите еще раз, если у вас есть проблемы.