当前位置:  开发笔记 > 编程语言 > 正文

给定emacs命令名称,您如何找到键绑定?(反之亦然)

如何解决《给定emacs命令名称,您如何找到键绑定?(反之亦然)》经验,为你挑选了3个好方法。

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

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



1> Adam Rosenfi..:

要查找命令的键绑定,可以使用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 ?


你也可以用`Ch w `来知道密钥的位置,而不是完整的文档.相反,你也可以做`Ch c `来知道哪个函数绑定到一个键序列.
另外:Ch w通常与where-is绑定.
所以,当我忘记Ch时,我可以在哪里.那很棒 !;)

2> Jisang Yoo..:

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

要以编程方式获取绑定到给定键序列的命令,请使用该函数key-bindinglookup-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文件中使用的,但是这个具有docstring的函数似乎暗示了其他方式.任何考虑使用的人where-is-internal都应首先检查重新映射密钥是否可以实现其目标.



3> Glen Best..:

C-h w(或F1-w):where-isRET somecommandname RET

只是你要问的是 - 列出没有附加信息的绑定密钥.:)

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有