¿Existe una sintaxis estándar / recomendada para definir un enlace de teclado?

10

He visto todo lo siguiente para definir un enlace de teclado. Todo este trabajo (al menos en MS Windows). No sé si hay otra forma de hacer lo mismo.
Me pregunto si hay una forma estándar o recomendada para definir un enlace de teclado y si se recomienda evitar algunos de estos.

(global-set-key "\M-r" 'some-command)
(global-set-key [(meta r)] 'some-command)
(global-set-key [?\M-r] 'some-command)
(global-set-key (kbd "M-r") 'some-command)
Nombre
fuente
1
Dudo que haya una sintaxis recomendada, pero personalmente me gusta el (global-set-key (kbd "M-r") 'some-command)método debido a la consistencia en la que se pueden definir las combinaciones de teclas ... no tienes que recordar cuándo o cuándo escapar de las cosas.
Kaushal Modi

Respuestas:

6

No existe una única forma estándar, porque existen diferentes casos de uso.

Si está escribiendo dicho código manualmente, en su archivo init, por ejemplo, entonces puede preferir el (kbd ...)formato, porque el argumento kbdusa la misma notación que Emacs usa cuando se comunica con usted sobre las asociaciones de teclas (en *Help*, por ejemplo).

Pero si está creando enlaces usando Emacs Lisp, entonces puede preferir la notación vectorial, en particular [(meta r)], etc., ya que es bastante más fácil de administrar.

Algunas personas consideran que el enfoque de cadena simple es arcaico, pero es útil cuando la clave es simple: "a"es más simple y al menos tan legible como (kbd "a"). Pero las cadenas simples son más difíciles de leer / usar cuando se trata de teclas modificadoras, etc.

Dibujó
fuente
6
(global-set-key [?\M-r] 'some-command)

es la forma "nativa". Todos los demás están construidos sobre este, básicamente.

Stefan
fuente