Answers:
不确定您要问的是什么。但是C-h k
,按下键之后,您会确切地看到需要传递给什么字符串kbd
。例如,C-h k f6
向您显示<f6>
。
这是一个执行您想要的命令,我猜并将结果绑定到C-c c
:
(defun foo (key)
(interactive "kKey: ")
(insert (format "(kbd %S)" (key-description key))))
(global-set-key (kbd "C-c c") 'foo)
然后输入:
(local-set-key C-c c
这提示您使用密钥。如果您按下F6键,则会得到以下信息:
(local-set-key (kbd "<f6>")
[根据@HaraldHancheOlsen的建议进行更新:已更改"(kbd \"%s\")"
为".](kbd %S)"
kill-ring
包含的内容。你是说key-description
串吗?还是上述format
sexp 的返回值?无论如何,应该清楚如何修改我给出的命令,以将其中任何一个添加到中kill-ring
(仅使用kill-new
)。
kbd <M-return>
),而不会将其插入到init文件中。(您必须执行复制/粘贴的附加步骤。)也许我误会了。对于我个人的使用情况下,我会觉得非常有用的一种方式来查询一个键绑定语法(例如是语法M-RET
或M-<return>
还是什么?),并自动把该字符串中的杀戒/纸板,这样我就可以再编写类似的行时,将键绑定粘贴到我的init文件中(define-key map (kbd "<M-return>") 'org-return)
。
kbd
在global-set-key
sexp中使用-现在已更正。)命令foo
(global-set-key
sexp绑定到C-c c
)读取键序列,然后在当前缓冲区的位置插入正确的kbd
性别。如果C-c c
在init文件中使用(local-set-key
,则它会在kbd
读取的密钥后插入您需要的sexp。
如果您使用M-x local-set-key
交互方式进行键绑定,则可以使用C-x ESC ESC
(repeat-complex-command
)获得一个Lisp表达式,您可以将该表达式粘贴到您的配置中。不过,它可能不会使用友好的(kbd ...)
样式说明。
define-key
尽管实际上我倾向于使用,但直接定义键似乎比设置钩子来调用定义键的函数更简单。
key-description
功能。