是否有用于定义键盘绑定的标准/推荐语法?


10

我已经看到了以下所有定义键盘绑定的内容。所有这些工作(至少在MS Windows上有效)。我不知道是否还有另一种方法可以做同样的事情。
我想知道是否有定义键盘绑定的标准或推荐方法,是否建议避免其中的某些方法。

(global-set-key "\M-r" 'some-command)
(global-set-key [(meta r)] 'some-command)
(global-set-key [?\M-r] 'some-command)
(global-set-key (kbd "M-r") 'some-command)

1
我怀疑是否有推荐的语法,但是我个人喜欢该(global-set-key (kbd "M-r") 'some-command)方法,因为可以定义键组合的一致性。您不必记住何时或何时不进行转义。
考沙尔·莫迪

Answers:


6

没有单一的标准方法,因为存在不同的用例。

如果您是手动编写这样的代码(例如,在init文件中),则您可能更喜欢这种(kbd ...)格式,因为to参数kbd使用与Emacs在与您进行键绑定通信时使用的相同符号(*Help*例如,在中)。

但是,如果要使用Emacs Lisp创建绑定,那么您可能更喜欢矢量符号,尤其是[(meta r)]等,因为它很容易管理。

有些人认为简单字符串方法是过时的,但是在键很简单的情况下很方便:"a"更简单并且至少与一样可读(kbd "a")。但是,对于修饰键等而言,简单的字符串更难阅读/使用。


6
(global-set-key [?\M-r] 'some-command)

是“本机”方式。基本上,其他所有功能都基于此功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.