以下代码有什么问题:
(defun test
(interactive)
(message "hello"))
(global-set-key '[f4] 'test)
使用eval-region
对此进行评估,然后按 F4 时出现错误:
Wrong type argument: commandp, test
答案 0 :(得分:11)
您缺少test
函数的参数列表,因此Emacs将(interactive)
表单解释为arglist。因此,您已经定义了1个参数的非交互式函数,而不是没有参数的交互式命令。
你想要的是:
(defun test ()
"My command test"
(interactive)
(message "hello"))
经验教训:
elint
(Emacs附带,尝试 C-h elint RET )。