我已经尝试了一些东西并且现在看了几个小时的其他答案,我无法弄清楚如何使自定义功能和键绑定工作......这绝对令人气愤。
为了测试的目的,我写了这个函数
(defun my/cmmt ()
""
(interactive)
(move-beginning-of-line 1)
(comment-region 1))
(global-set-key (kbd "\C-o")
'my/cmmt)
有2个问题,我希望它将此绑定到C-m
,但后来我收到错误:
symbol's value as variable is void: C-m
这是什么意思?
而且,它所做的只是将光标移动到行的开头,但不会将其注释掉。为什么呢?
(defun my/cmmt ()
""
(interactive)
(comment-region
(line-beginning-position)
(line-end-position)
)
)
(global-set-key (kbd "C-o")
'my/cmmt)
现在错误是:
symbol's function definition is void: \,
答案 0 :(得分:1)
(kbd "C-o")
不是(kbd "\C-o")
您混淆了两种指定键的方法 - (kbd "C-o")
和"\C-o"
是等效的。
我建议使用kbd
,只需输入 Ch k keys 即可学习内容传递给kbd
以指定键序列 keys 。例如:当你输入 Ch k Co Emacs告诉你C-o
是该键序列的表示,所以{{1你必须传递给"C-o"
。
评论无效的原因是因为kbd
无效。你应该看到一个错误。它需要两个必需的参数。有关详细信息,请参阅 C-h f (comment-region 1)
。