Answers:
要仅查找命令的键绑定,可以使用emacs帮助的“ where-is”功能
C-h w command-name
如果为命令设置了多个绑定,则将全部列出。
反之,给定键序列,您可以键入
C-h k key-sequence
获取将运行的命令。
您可以通过键入以下命令来获取有关命令以及定义的任何非交互功能的详细信息:
C-h f function-name
它将为您提供有关功能的详细信息,包括该功能的所有键绑定,以及
C-h v variable-name
将为您提供有关任何(绑定)变量的信息。键映射保留在变量中,但是键代码以原始格式存储。尝试C-h v isearch-mode-map
一个例子。
有关获得帮助的更多帮助,您可以输入
C-h ?
C-h w <function name>
只知道关键在哪里,而不是完整的文档。相反,您也C-h c <key sequence>
可以只知道键序列绑定了什么功能。
C-h
在其窗口管理器中绑定了其他内容的用户:C-h w
等同于M-x where-is
。C-h k
等价于M-x describe-key
。C-h f
等价于M-x describe-function
。C-h v
等价于M-x describe-variable
。C-h ?
等价于M-x help-for-help
。另请注意,f1
可以使用代替C-h
。
要以交互方式将命令绑定到键盘快捷键(或Emacs术语中的键序列),请参阅所选答案。
为了以编程方式将命令绑定到给定的键序列,请使用函数key-binding
或lookup-key
接受键序列并返回其绑定命令的函数。功能key-binding
是用什么C-h k
。
(key-binding (kbd "C-h m"))
C-h m
通过搜索所有当前键映射表返回绑定到的命令。该函数lookup-key
在单个按键图中搜索:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
为了以编程方式将所有键序列绑定到给定命令,where-is-internal
可能是要使用的功能。以。结尾的函数名称internal
似乎表明,Emacs用户不应在其init文件中使用该函数,但此具有文档字符串的函数似乎表明并非如此。任何考虑使用的人where-is-internal
都应首先检查是否重新映射密钥可以实现其目标。
查找绑定到特定命令(例如forward-char
)的键的替代方法是substitute-command-keys
(例如(substitute-command-keys "\\[forward-char]")
)。这在较大的文本中特别有用。
where-is-internal
可以使用它。同样,按照惯例,where-is--internal
对于“私有”功能,我们使用类似(请注意双破折号)的格式。
一个古老的问题,但是对于新读者来说,还有一些其他不错的方式来查看键绑定
M-x describe-bindings
列出当前可用的所有绑定,使用isearch,发生等以充分利用此列表。
M-x describe-prefix-map
这将显示当前模式下可用的所有绑定,您可以像其他任何只读Emacs缓冲区一样使用显示缓冲区,例如,可以自由搜索字符串等。
M-x describe-mode
除了为您提供有关当前模式的常规信息外,它还将列出所有可用的键绑定。
M-x describe-minor-mode
系统将提示您输入次要模式的名称,然后显示该次要模式的信息和按键绑定。
注意:以下示例使用其他程序包(可从MELPA获得)
这将向您显示绑定,它们仅在需要它们之前。输入前缀,例如C-x
或C-c
,将显示该前缀中可用绑定的列表。
您还可以使用以下方法查看当前模式下可用的键绑定列表:
M-x which-key-show-top-level
绑定which-key-show-top-level
到所选的和弦很有用,因此您可以在任何地方查看可用的琴键。
例如,C-s
(isearch-forward
)具有广泛的键映射,而这通常是未知的。例如M-s o
开始occur
使用当前的搜索字符串,使用Emacs多年以来我对此一无所知。有which-key
各地帮助我发现在Emacs许多稀有宝石。
https://github.com/justbur/emacs-which-key
指南键的工作方式与which-key
我建议对其进行比较以比较功能的方式几乎相同。