在 Emacs 中,一切都与热键有关。创建新快捷方式的每个人都知道这个问题:
- 应该使用哪些热键?
- 哪些热键被最流行的 Emacs 扩展 (
org-mode
...) 使用并且应该避免使用? - 是否有为“用户”保留的热键,这些热键永远不会被扩展使用?
- 如果代码应该公开,应该避免哪些热键?(某些键,例如
right/left Win
有时在键盘上丢失,M-TAB
将被窗口管理器捕获)
是否有所有保留热键的列表?
GNU Emacs Lisp 参考手册有一个关于键绑定约定的详细页面:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html
坚持使用保留的C-c <letter>
序列就可以确保不会与任何其他代码冲突(尽管它仍然只是一种约定;有时您会看到人们提供使用这些序列之一的代码,但是您可以将这些情况作为错误报告给作者)。
我建议使用一些C-c <letter>
序列作为前缀绑定来将相关功能分组在一起。例如,您可以将C-c w <key>
其用作与窗口相关的功能的模式。这为您提供了大量的保留绑定,可能具有更好的助记符属性,当然后续<key>
可以是任何东西,而不仅仅是一个字母。
这也让您可以C-c <letter> C-h
用来列出您在该前缀下绑定的所有内容,这很方便。
键C-c <letter>
是为用户保留的,所以包通常不应该使用它们(注意“字母”实际上是字母表中的一个字母,而不是“任何键”或“任何字符”)。但是大多数用户只是使用他们喜欢的任何一个键,当该绑定与某个包发生冲突时,他们会以一种特别的方式处理冲突(通过使用另一个键,或者通过专门覆盖包的绑定)。
自动化键绑定检查评估表单,如
(键绑定 [(control c) (delete)])