В чем разница между `global-set-key` и` define-key global-map` в Emacs - PullRequest
30 голосов
/ 25 мая 2009

Если у вас было два фрагмента:

(global-set-key "\C-d" delete-char)

и

(define-key global-map "\C-d" delete-char)

Есть ли разница между ними? Если да, то когда бы вы использовали один поверх другого?

Ответы [ 2 ]

25 голосов
/ 25 мая 2009

Функция global-set-key - это интерактивная функция , основанная на define-key, которую можно вызвать, набрав M-x global-set-key. Функция define-key скорее используется в программах на Лиспе.

Вы можете посмотреть исходный код global-set-key с помощью C-h f global-set-key, чтобы увидеть, что он содержит только define-key.

Чтобы ответить на ваш вопрос, между ними нет существенных различий.

18 голосов
/ 25 мая 2009

ключ глобального набора определен в subr.el как:

(define-key (current-global-map) key command))
...