首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >给定emacs命令名,如何查找键绑定?(反之亦然)

给定emacs命令名,如何查找键绑定?(反之亦然)
EN

Stack Overflow用户
提问于 2009-06-08 14:51:07
回答 3查看 28.6K关注 0票数 114

如果我知道一个emacs命令名,比如"goto-line";如果我想查询是否有任何键序列绑定到这个命令,该怎么办?

反之亦然,给定一个键序列,我如何找到它的命令名?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-08 14:54:12

要只查找命令的键绑定,可以使用emacs帮助的"where-is“特性

代码语言:javascript
复制
C-h w command-name

如果为命令设置了多个绑定,则会列出所有绑定。

相反,给定一个键序列,您可以键入

代码语言:javascript
复制
C-h k key-sequence

来获取将要运行的命令。

您可以通过键入以下命令来获取有关命令的详细信息,以及任何定义的非交互式函数

代码语言:javascript
复制
C-h f function-name

它将为您提供有关函数的详细信息,包括它的任何键绑定,以及

代码语言:javascript
复制
C-h v variable-name

会给你任何(绑定的)变量的信息。键映射保存在变量中,但是键代码以原始格式存储。请尝试使用C-h v isearch-mode-map作为示例。

有关获取帮助的更多帮助,您可以键入

代码语言:javascript
复制
C-h ?
票数 176
EN

Stack Overflow用户

发布于 2013-03-27 05:07:55

要以交互方式将命令绑定到键盘快捷键(或Emacs术语中的键序列),请参阅所选答案。

要以编程方式将命令绑定到给定的键序列,请使用接受键序列并返回其绑定命令的函数key-bindinglookup-keyC-h k使用的是key-binding函数。

代码语言:javascript
复制
(key-binding (kbd "C-h m"))

通过搜索所有当前键值映射,返回绑定到C-h m的命令。函数lookup-key在单个快捷键映射中搜索:

代码语言:javascript
复制
(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用户在其初始化文件中使用,但是这个具有文档字符串的函数似乎表明并非如此。任何考虑使用where-is-internal的人都应该首先检查remapping keys是否可以实现他们的目标。

用于寻找绑定到特定命令(例如,forward-char)的密钥的替代方案是substitute-command-keys (例如,(substitute-command-keys "\\[forward-char]"))。这在较大的文本中尤其有用。

票数 16
EN

Stack Overflow用户

发布于 2013-07-24 22:04:03

C-h w (或F1-w):where-is RET某个通用名称RET

做你想做的事情--列出绑定的键,而不需要额外的信息。:)

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/965263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档