Czy istnieje standardowa / zalecana składnia do definiowania wiązania klawiatury?


10

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)

1
Wątpię, czy istnieje zalecana składnia, ale osobiście podoba mi się ta (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.
Kaushal Modi

Odpowiedzi:


6

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ż argument kbduż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.


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

jest „rodzimym” sposobem. Zasadniczo wszystkie inne są zbudowane na podstawie tego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.