Два метода для сопоставления клавиш в Emacs - PullRequest
5 голосов
/ 25 августа 2010

Я обнаружил, что в emacs есть два способа установки ключа: golbal-set-key и define-key. Они одинаковы? Или есть ли плюсы / минусы между двумя подходами?

(global-set-key (kbd "C-c C-f") 'my-find-file)
(define-key global-map
  "\C-ck" 'hello)

Ответы [ 2 ]

6 голосов
/ 25 августа 2010

Фактически нет никакой разницы, если вы посмотрите на определение global-set-key, вы увидите:

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

Возможно, что (current-global-map) вернет раскладку, отличную от global-key-map, но необычную.

Теперь, поскольку define-key принимает аргумент таблицы ключей, он, очевидно, более гибкий, чем простой global-set-key. Для получения подробной информации о раскладках клавиш ознакомьтесь с информационными страницами .

2 голосов
/ 25 августа 2010

Разница в том, что (global-set-key) или (local-set-key) выяснит для вас глобальную / локальную карту (до вызова (define-key)).

Редактировать Вы можете использовать M-x describe-function для (global-set-key)

(global-set-key key command)

Give key a global binding as command.
command is the command definition to use; usually it is
a symbol naming an interactively-callable function.
key is a key sequence; noninteractively, it is a string or vector
of characters or event types, and non-ASCII characters with codes
above 127 (such as ISO Latin-1) can be included if you use a vector.

А для (define-key)

(define-key keymap key def)

In keymap, define key sequence key as def.
keymap is a keymap.

key is a string or a vector of symbols and characters meaning a
sequence of keystrokes and events.  Non-ASCII characters with codes
above 127 (such as ISO Latin-1) can be included if you use a vector.
Using [t] for key creates a default definition, which applies to any
event type that has no other definition in this keymap.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...