Diferença entre “global-map define-key” e “global-set-key” no Emacs

7

Olhando como as pessoas programam seus atalhos de teclado no Emacs, notei dois padrões diferentes:

Um usa:

(global-set-key (kbd "M-N) 'select-next-window)

O outro:

(define-key global-map (kbd "M-N") 'select-next-window)

Qual é a diferença entre eles? Eles não definem atalhos de teclado "globais" no Emacs?

    
por Amelio Vazquez-Reina 15.12.2011 / 17:42

1 resposta

3

Não parece haver muita diferença no caso principal:

  • (global-set-key key command) se resume a (define-key (current-global-map) key command)) e
  • describe-var nos diz que global-map "é um mapa de teclado que normalmente é (mas não necessariamente) o mapa global do Emacs", enquanto
  • (current-global-map) "retorna o mapa de chaves global atual".

No entanto, os documentos do Emacs falam sobre o "mapa de teclado global", por isso é Não está claro como, se alguma vez, você pode encontrar vários mapas de teclado globais.

    
por 15.12.2011 / 19:22

Tags