Widziałem wszystkie poniższe definicje powiązania klawiatury. Wszystkie te działają (przynajmniej w MS Windows). Nie wiem, czy jest inny sposób na zrobienie tego samego.
Zastanawiam się, czy istnieje standardowy lub zalecany sposób definiowania wiązania klawiatury i czy zaleca się unikanie niektórych z nich.
(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)
key-bindings
syntax
Imię
źródło
źródło
(global-set-key (kbd "M-r") 'some-command)
metoda ze względu na spójność, w jakiej można zdefiniować kombinacje klawiszy. Nie musisz pamiętać, kiedy i kiedy nie należy uciec.Odpowiedzi:
Nie ma jednego standardowego sposobu, ponieważ istnieją różne przypadki użycia.
Jeśli piszesz taki kod ręcznie, na przykład w pliku init, możesz preferować
(kbd ...)
format, ponieważ argumentkbd
używa tej samej notacji, której używa Emacs, gdy komunikuje się z tobą o powiązaniach klawiszy (*Help*
na przykład).Ale jeśli tworzysz powiązania za pomocą Emacsa Lispa, możesz preferować notację wektorową, w szczególności
[(meta r)]
itp., Ponieważ jest ona o wiele łatwiejsza w zarządzaniu.Niektórzy uważają, że proste podejście łańcuchowe jest archaiczne, ale jest przydatne, gdy klucz jest prosty:
"a"
jest prostszy i przynajmniej tak czytelny jak(kbd "a")
. Ale proste ciągi są trudniejsze do odczytania / użycia, jeśli chodzi o klawisze modyfikujące itp.źródło
jest „rodzimym” sposobem. Zasadniczo wszystkie inne są zbudowane na podstawie tego.
źródło