Existe-t-il une syntaxe standard / recommandée pour définir une liaison clavier?


10

J'ai vu tout ce qui suit pour définir une liaison clavier. Tous ces travaux (au moins sur MS Windows). Je ne sais pas s'il y a une autre façon de faire la même chose.
Je me demande s'il existe un moyen standard ou recommandé de définir une liaison clavier et s'il est recommandé d'éviter certains d'entre eux.

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

1
Je doute qu'il existe une syntaxe recommandée mais j'aime personnellement la (global-set-key (kbd "M-r") 'some-command)méthode en raison de la cohérence dans laquelle les combinaisons de touches peuvent être définies .. vous n'avez pas à vous rappeler quand ou quand ne pas échapper à des trucs.
Kaushal Modi

Réponses:


6

Il n'y a pas de méthode standard unique, car il existe différents cas d'utilisation.

Si vous écrivez ce code manuellement, dans votre fichier init par exemple, vous préférerez peut-être le (kbd ...)format, car l'argument to kbdutilise la même notation qu'Emacs lorsqu'il communique avec vous à propos des raccourcis clavier (dans *Help*, par exemple).

Mais si vous créez des liaisons à l'aide d'Emacs Lisp, vous préférerez peut-être la notation vectorielle, en particulier, [(meta r)]etc., car elle est beaucoup plus facile à gérer.

Certaines personnes considèrent l'approche de chaîne simple comme archaïque, mais elle est pratique lorsque la clé est simple: elle "a"est plus simple et au moins aussi lisible que (kbd "a"). Mais les chaînes simples sont plus difficiles à lire / à utiliser en ce qui concerne les touches de modification, etc.


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

est la voie "native". Tous les autres sont construits sur celui-ci, en gros.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.