2013-03-12 41 views
2

我想弄清楚M-m是绑定到back-to-indentation函数。当我发出C-H K m值米describe-key),I得到以下输出如何查找Emacs Lisp函数绑定到某个键的位置?

M-米运行命令后到压痕,这是一个交互式 编译Lisp函数在`simple.el”。

它被绑定到M-m。

(后端到压痕)

将光标移动到该线路上的第一个非空格字符。

当我看到simple.el,我只看到函数back-to-indentation的定义。我搜索了整个文件,并且我没有看到使用define-key为该功能完成的任何键绑定。我假设它发生在别处。

如何识别功能绑定的位置M-m键?

Emacs的版本:GNU Emacs的24.2.1(x86_64的 - 苹果darwin12.2.0,NS苹果了AppKit-1187.34)

+3

出于好奇,你为什么要这样做? – phils 2013-03-12 08:00:41

+0

我在查看lisp文件时意外发现了有用的击键。每当我盯着一个新的模块,我就会寻找'define-key'行来看看是否有任何我可以使用的有趣的绑定。 'M-m'是我偶然发现的一种约束力。我想看看在同一个类中提供了哪些其他有用的绑定。 'C-h b'种类在General Bindings类别下显示过多的绑定,这使得难以专注于类似的一组绑定。 – 2013-03-12 17:17:16

回答

4

我不知道这是在一般的可能,但我的猜测会是Emacs不记得定义给定密钥的代码在哪里。

C-Hb将展示从那里当前绑定,从中你可以建立键盘映射表你感兴趣的,和工作。对于大多数主要或次要的模式映射,找到代码不会太困难。

您的具体示例是Emacs在bindings.el中配置的全局绑定。

+0

不知何故'shift + m'绑定到我的配置中的'Meta'键并且现在不能键入'Mock'。有没有办法找到或解除它? – ChillarAnand 2015-03-24 06:30:10

+0

修饰键只能在OS级别分配,所以必须在Emacs之外发生。要么这样,要么你对问题的描述不清楚。我认为'C-h k'后跟'shift + m'什么都不做? – phils 2015-03-24 11:39:37

+0

与'emacs -Q'一切正常工作http://stackoverflow.com/questions/29226265/how-to-find-where-a-key-binding-is-defined-in-emacs – ChillarAnand 2015-03-24 15:54:50