Emacs 新手:Elisp中的键绑定错误

Emacs 新手:Elisp中的键绑定错误,emacs,lisp,elisp,Emacs,Lisp,Elisp,我正在尝试为“na”函数创建一个简单的键绑定。当我执行(na)时,它会在当前缓冲区中插入“å”,这是它应该插入的,但是当我尝试第一行中描述的键绑定时,我会得到错误:“错误参数:commandp,na”。 我不确定这是否重要,但我也将(localset key)命令放在了代码的末尾,但它会产生相同的错误 现在,我相信有一个简单的解决办法。我就是看不见=/ (local-set-key (kbd "C-c C-t") 'na) (defun na () "Liten å"

我正在尝试为“na”函数创建一个简单的键绑定。当我执行(na)时,它会在当前缓冲区中插入“å”,这是它应该插入的,但是当我尝试第一行中描述的键绑定时,我会得到错误:“错误参数:commandp,na”。 我不确定这是否重要,但我也将(localset key)命令放在了代码的末尾,但它会产生相同的错误

现在,我相信有一个简单的解决办法。我就是看不见=/

(local-set-key (kbd "C-c C-t") 'na)

(defun na ()
       "Liten å"
       (setq varlol "å")
       (insert varlol))

您缺少的是一个呼叫:

从it文档中:

此特殊表单声明 函数是一个命令,它可以 因此,可以交互调用(通过 M-x或输入一个键 序列绑定到它)。争论 arg描述符声明如何计算 当 命令以交互方式调用

“交互式”功能缺失

(defun na ()
  (interactive)
       "Liten å"
       (setq varlol "å")
       (insert varlol))

谢谢这就成功了。我正在阅读关于GNU的Elisp介绍文章,并且(交互)符号包含了“p”,所以我自动将其放入了偏执论中,但出现了一个错误。我应该认为“p”表示它希望接收数据。无论如何谢谢你@DreamCodeR查看交互式<代码>的文档以查看各种参数。
“p”
表示前缀参数(
C-u
)已转换为数字。但是,您得到的错误是函数
na
没有任何参数,因此错误很可能是您指定(通过
interactive
)函数应该有一个参数,但实际定义没有参数。这不是您的问题,但仅供参考,“C-x 8/a”与您定义的函数做的事情相同。“C-x 8 C-h”将列出插入拉丁字符的各种已定义快捷方式
(defun na ()
  (interactive)
       "Liten å"
       (setq varlol "å")
       (insert varlol))