【问题标题】:Wrong type argument: sequencep, #<buffer *scratch*> when trying to evaluate a function in the scratch buffer错误的类型参数:sequencep, #<buffer *scratch*> 尝试评估暂存缓冲区中的函数时
【发布时间】:2020-04-17 04:08:52
【问题描述】:

当我尝试评估暂存缓冲区(使用 eval-last-sexp)或 minibuffer 中的一段 lisp 代码时,我的 emacs 停止工作,并出现上述错误。我无法从中恢复,我必须终止 emacs 进程。

函数是:

(defun add-to-list (val list-of-numbers)
(mapcar #'(lambda (num) (+ val num))
  list-of-numbers))

我尝试了全新的 spacemacs 安装,以排除我的配置文件有问题,但我遇到了同样的问题。

这似乎是一个格式良好的函数,并且函数名称在评估后显示在 minibuffer 中,因此它似乎被评估得很好。但随后出现上述错误。

有人可以根据这些信息解释一下吗?

【问题讨论】:

    标签: elisp


    【解决方案1】:

    add-to-list 是 Emacs 的内置函数。也许重新定义是您问题的根源? 如果你选择另一个函数名会发生什么?

    【讨论】:

    • @chrimuelle 您应该为所有自定义函数选择一个唯一的前缀,以便命名空间。很多人使用my-my/ 或他们自己的用户名等。Elisp 没有命名空间功能,因此手动操作以避免冲突很重要。
    猜你喜欢
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    相关资源
    最近更新 更多