为新的emacs命令找到一个好的热键

为新的emacs命令找到一个好的热键,emacs,hotkeys,emacs24,Emacs,Hotkeys,Emacs24,在Emacs中,一切都与热键有关。每个创建新捷径的人都知道问题所在: 应该使用哪些热键 最流行的Emacs扩展(org mode…)使用哪些热键,应该避免使用哪些热键 是否为“用户”保留了扩展永远不会使用的热键 如果代码应该是公共的,那么应该避免使用哪些热键?(键盘上有时缺少一些键,如right/left Win,M-TAB将被windowmanager捕获) 是否有所有保留热键的列表?键C-C是为用户保留的,因此软件包通常不应该使用它们(请注意,“字母”实际上是字母表中的字母,而不是“任何键”

在Emacs中,一切都与热键有关。每个创建新捷径的人都知道问题所在:

  • 应该使用哪些热键
  • 最流行的Emacs扩展(
    org mode
    …)使用哪些热键,应该避免使用哪些热键
  • 是否为“用户”保留了扩展永远不会使用的热键
  • 如果代码应该是公共的,那么应该避免使用哪些热键?(键盘上有时缺少一些键,如
    right/left Win
    M-TAB
    将被windowmanager捕获)

  • 是否有所有保留热键的列表?

    C-C
    是为用户保留的,因此软件包通常不应该使用它们(请注意,“字母”实际上是字母表中的字母,而不是“任何键”或“任何字符”)。但大多数用户只使用他们喜欢的密钥,当该绑定与某个包冲突时,他们会以特别的方式处理冲突(或者使用另一个密钥,或者专门覆盖包的绑定)。

    自动执行密钥绑定检查,评估表单,如


    (键绑定[(控制c)(删除)])

    GNU Emacs Lisp参考手册有一页详细介绍键绑定约定:


    坚持保留的
    C-C
    序列可以保证您不会与任何其他代码冲突(尽管这仍然只是一种惯例;有时您会看到人们提供使用这些序列之一的代码,但您可以将这些情况作为错误报告给作者)

    我建议使用一些
    C-C
    序列作为前缀绑定,将相关功能分组在一起。例如,您可以使用
    C-cw
    作为窗口相关功能的模式。这会提供大量的保留绑定,可能具有更好的助记符属性,当然后续的
    可以是任何内容,而不仅仅是一个字母

    这还允许您使用
    C-C-h
    列出您在该前缀下绑定的所有内容,这非常方便