¿Cómo asignar alias a las combinaciones de teclas en emacs?

¿Cómo asignar alias a las combinaciones de teclas en emacs?

Por ejemplo, uso C-c a amucho y me gustaría asignarlo fácilmente a f1.

Sé que puedo buscar qué función llama finalmente el primer enlace (esta vez fue org-agenda-list), pero busco una solución más general. No creo que pueda usarlo (global-set-key KEY COMMAND), porque no estoy seguro de si presionar teclas es COMMANDen sí mismo (¿pero tal vez pueda serlo?)

Entonces, ¿cómo vincular "varias pulsaciones de teclas sucesivas" a otra vinculación?

Respuesta1

El código que buscas es:

(define-key keymap-1 (kbd "new prefix")
 (lookup-key keymap-2 (kbd "old prefix")))

Por lo general, no es necesario conocer los nombres de los mapas de teclas como las expresiones (current-global-map)y (current-local-map)devolver los mapas globales y locales vigentes. Aunque el manual de emacs dice que puede reasignar cualquiera de las teclas de función, he descubierto que pueden suceder cosas extrañas si intenta reasignar f1, f2, f3, f4 o f10. Por esta razón suelo reasignar f5 o f6. Como ejemplo de mi archivo .emacs, el código:

(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")))))

establece M-RETy M-S-RETen modo planificador y también convierte el prefijo f5en un alias para C-c C-jen ese modo.

Sin embargo, tenga en cuenta que no siempre funciona como lookup-keyparece entender las macros que, desafortunadamente, son legales en los mapas de teclas. En estos casos normalmente se puede encontrar una solución. Pregunta nuevamente si tienes problemas.

Respuesta2

Creo, pero no lo intenté, que deberías hacer algo como esto:

(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)

Esta publicaciónParece ser el lugar para más detalles.

información relacionada