Emacs 中“define-key global-map”和“global-set-key”之间的区别

Emacs 中“define-key global-map”和“global-set-key”之间的区别

观察人们如何在 Emacs 中编写键盘快捷键,我注意到两种不同的模式:

一种用途:

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

另一个:

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

他们之间有什么区别?它们不是都在 Emacs 中定义了“全局”键盘快捷键吗?

答案1

在主要情况下似乎没有太大区别:

  • (global-set-key key command)归结为(define-key (current-global-map) key command)), 和
  • describe-var告诉我们global-map“是一个键盘映射,通常(但不一定)是 Emacs 的全局映射”,而
  • (current-global-map)“返回当前的全局键盘映射”。

然而,Emacs 文档谈论“”全局键盘映射,因此不清楚如何(如果有的话)遇到多个全局键盘映射。

相关内容