Vi todos os itens a seguir para definir uma ligação do teclado. Tudo isso funciona (pelo menos no MS Windows). Não sei se existe outra maneira de fazer a mesma coisa.
Gostaria de saber se existe uma maneira padrão ou recomendada para definir uma ligação de teclado e se é recomendável evitar algumas delas.
(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
Nome
fonte
fonte
(global-set-key (kbd "M-r") 'some-command)
método devido à consistência na qual as combinações de teclas podem ser definidas. Você não precisa se lembrar de quando ou não escapar das coisas.Respostas:
Não existe uma maneira padrão única, porque existem casos de uso diferentes.
Se você estiver escrevendo esse código manualmente, no seu arquivo init, por exemplo, poderá preferir o
(kbd ...)
formato, porque o argumentokbd
usa a mesma notação que o Emacs usa quando se comunica com você sobre ligações de teclas (*Help*
por exemplo).Mas se você estiver criando ligações usando o Emacs Lisp, poderá preferir a notação vetorial, em particular
[(meta r)]
etc., pois é um pouco mais fácil de gerenciar.Algumas pessoas consideram a abordagem simples das cordas arcaica, mas é útil quando a chave é simples:
"a"
é mais simples e pelo menos tão legível quanto(kbd "a")
. Mas strings simples são mais difíceis de ler / usar quando se trata de teclas modificadoras etc.fonte
é o caminho "nativo". Todos os outros são construídos sobre este, basicamente.
fonte