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

hax*_*ney 32 emacs elisp keyboard-shortcuts

如果你有两个片段:

(global-set-key "\C-d" delete-char)
Run Code Online (Sandbox Code Playgroud)

(define-key global-map "\C-d" delete-char)
Run Code Online (Sandbox Code Playgroud)

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

Tör*_*bor 26

函数global-set-key是一个互动的功能基础上define-key,您可以通过键入以下命令调用M-x global-set-key.函数define-key在Lisp程序中使用.

你可以查看它global-set-key的源代码,C-h f global-set-key看它只包装define-key.

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


dfa*_*dfa 18

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

(define-key (current-global-map) key command))
Run Code Online (Sandbox Code Playgroud)

  • 如果您能分辨出黑白 2 的区别,那就太好了 (3认同)