Emacs:打印命令的按键绑定或列出所有按键绑定。

108
在Emacs (GNU 23.2, *nix)中,我该怎么做才能:
  1. 列出与特定命令绑定的键序列?例如,我们如何列出所有执行save-buffers-kill-emacs的键序列,其中输出绑定到它的键序列?假设我们可以做到这一点,列出绑定到goto-line的键序列应该打印输出:M-g g在默认安装上。
  2. 列出所有按键绑定?C-h b是否可以做到这一点?它会打印我的自定义绑定吗?
我知道直接执行命令可以打印可激活的键序列,但并不总是这样,并且会发生一些事情,包括:
(1) 输出不会长时间保留,(2) 命令被执行。
我想要一个命令,为我列出(最好是全部)与给定命令相关联的绑定,而不执行该命令或类似的东西。
2个回答

143
  1. C-h f(或者M-x describe-function)会显示一个命令的绑定信息。

  2. 您是正确的,C-h b(或者M-x describe-bindings)会显示所有的绑定信息。C-h m (M-x describe-mode)也很方便地按模式列出绑定信息。

您还可以尝试使用C-h k (M-x describe-key)来查看绑定到哪个按键的命令。例如,在我的电脑上,save-buffers-kill-emacs没有被绑定到任何按键,但是C-h k C-x C-c告诉我C-x C-c被绑定到了save-buffers-kill-terminal。它将同时列出该命令的所有绑定信息。


11
+1,还有C-h c(或M-x describe-key-briefly),它会在 mini-buffer 空间中简要显示分配给按键的函数。 - Shannon Severance
不确定这是否应该是一个单独的问题,但是否有可能显示所有以特定键开头的键绑定/函数?例如,哪些绑定以<f2>开头?在“C-h m”后按下<f2>无效,因为Emacs正在等待第二个键。 - SabreWolfy
1
在这里作为一个新问题提出:https://dev59.com/zmkv5IYBdhLWcg3wzkDa - SabreWolfy

42

怎么样只是

M-x where-is <COMMAND>

你可以通过 C-h f 得到与此相同的信息。

C-h w<f1> w<help> w 也绑定了相同的功能。


2
这实际上是第一个问题的正确答案,因为describe-function不会列出像ignoreself-insert-command这样的函数的所有绑定。 - David Ongaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接