在Emacs中`global-set-key`和`define-key global-map`有什么区别?

时间:2009-05-25 11:23:53

标签: emacs keyboard-shortcuts elisp

如果你有两个片段:

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

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

这两者有区别吗?如果是这样,你何时会使用一个而不是另一个?

2 个答案:

答案 0 :(得分:25)

功能global-set-key是基于define-key的{​​{3}},您可以通过键入M-x global-set-key来调用。函数define-key在Lisp程序中使用。

您可以使用global-set-key查找C-h f global-set-key的源代码,看它只包装define-key

要回答您的问题,他们之间没有显着差异。

答案 1 :(得分:18)

global-set-key在subr.el中定义为:

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