Как создать псевдонимы сочетаний клавиш в emacs?

Как создать псевдонимы сочетаний клавиш в emacs?

Например, мне приходится использовать C-c a aмного чего, и я хотел бы легко сопоставить это с f1.

Я знаю, что могу поискать, какую функцию в конечном итоге вызывает первая привязка (на этот раз это было org-agenda-list), но мне нужно более общее решение. Я не думаю, что могу использовать (global-set-key KEY COMMAND), так как не уверен, является ли нажатие клавиш само COMMANDпо себе (но, может быть, может?)

Так как же привязать «множественные последовательные нажатия клавиш» к другой привязке?

решение1

Код, который вы ищете:

(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и M-S-RETв режиме планировщика, а также превращает префикс f5в псевдоним для C-c C-jв этом режиме.

Однако имейте в виду, что это не всегда работает, как, lookup-keyкажется, понимают макросы, которые, к сожалению, являются законными в раскладках. В таких случаях вы обычно можете найти способ обойти это. Спросите еще раз, если у вас возникнут проблемы.

решение2

Я думаю, хотя и не пробовал, что нужно сделать что-то вроде этого:

(defun org-execute-my-action ()
  (local-set-key (kbd "C-c q") 'org-name-of-function))

(add-hook 'org-mode-hook 'org-execute-my-action)

Эта почтакажется, здесь самое время рассказать подробнее.

Связанный контент