Emacs:用于注释行的自定义函数和键绑定
Emacs: custom function and keybinding for commenting out line
几个小时以来,我一直在尝试一些东西并查看其他答案,但我无法弄清楚如何使自定义功能和键绑定工作......这绝对令人气愤。
为了测试的目的我写了这个函数
(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: \,
(kbd "C-o")
不是 (kbd "\C-o")
您混淆了两种指定键的方法 -- (kbd "C-o")
和 "\C-o"
是等效的。
我建议使用 kbd
,只需输入 C-hk keys 了解要传递给 kbd
的内容以指定键序列 keys。例如:当您键入 C-hkC-o 时,Emacs 会告诉您 C-o
是表示那个键序列,所以 "C-o"
是你必须传递给 kbd
.
评论不起作用的原因是 (comment-region 1)
无效。你应该看到一个错误。它需要 两个 个必需的参数。详见C-hfcomment-region
几个小时以来,我一直在尝试一些东西并查看其他答案,但我无法弄清楚如何使自定义功能和键绑定工作......这绝对令人气愤。
为了测试的目的我写了这个函数
(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: \,
(kbd "C-o")
不是 (kbd "\C-o")
您混淆了两种指定键的方法 -- (kbd "C-o")
和 "\C-o"
是等效的。
我建议使用 kbd
,只需输入 C-hk keys 了解要传递给 kbd
的内容以指定键序列 keys。例如:当您键入 C-hkC-o 时,Emacs 会告诉您 C-o
是表示那个键序列,所以 "C-o"
是你必须传递给 kbd
.
评论不起作用的原因是 (comment-region 1)
无效。你应该看到一个错误。它需要 两个 个必需的参数。详见C-hfcomment-region