Emacs - 如何找到与kbd一起使用的代码来识别给定的键序列

时间:2016-06-13 23:42:55

标签: emacs

我最近是emacs用户,当我用快乐绑定快捷方式时,例如:

(defun toggle-comment-on-line ()
  "comment or uncomment current line"
  (interactive)
  (comment-or-uncomment-region (line-beginning-position) (line-end-position)))

(global-set-key (kbd "\s /") 'toggle-comment-on-line)

我想使用cmd +“/”来调用这个有趣的东西,但这不起作用。搜索几个小时没有任何帮助

问题是:

我在哪里可以找到有关emacs的可用kbd文档,我可以从键盘搜索符号映射?例如,什么'/'代表kbd。

2 个答案:

答案 0 :(得分:1)

'/'不需要特殊的转义序列。但是,修饰键需要不同的语法。因为听起来你有一个Apple键盘,你可能正在寻找的语法是:

(global-set-key (kbd "s-/") 'toggle-comment-on-line)

''(小写)代表'超级'。如果您希望将其绑定到“控制”,请使用C-/

有关在emacs中查找内容的建议:

在emacs中,您可以使用describe function查找任何功能的文档。然后输入C-h f,然后输入kbd,然后输入<Enter>

然后,您可以阅读kbd函数:

  

kbd是`subr.el'中编译的Lisp函数。

     

(kbd KEYS)

     

将KEYS转换为内部Emacs键表示。 KEYS应该是   用于保存键盘宏的格式的字符串常量(请参阅   `edmacro模式')。

按照edmacro-mode链接获取语法的详细说明。

答案 1 :(得分:1)

要查找传递给kbd的参数,您只需询问Emacs。

键入 Ch k (即describe-key),然后键入您感兴趣的键,Emacs会告诉您要传递给{{{ 1}}。

e.g。当我键入 C-h k 然后 Ctrl + x space Emacs告诉我:

kbd
  • 这告诉我C-x SPC runs the command rectangle-mark-mode [...] 是Emacs如何引用 Ctrl + x space
  • 因此我使用C-x SPC在elisp中使用该键序列。

在您的情况下,键入 C-h k ,然后键入 cmd + / ,然后使用Emacs告诉您的任何内容。

您也可以使用 C-h c (即(kbd "C-x SPC"))来查看回音区域中的答案。