【已解决】解决 (wrong-number-of-arguments (0 . 1) 2) 问题

【更新】解决 (wrong-number-of-arguments (0 . 1) 2) 问题

  • 记录日:2021-11-20
  • 解决记录
    • 发现问题
      • 突然有一天,发现将 org 文件导出为 md 格式是,会不停出现 (wrong-number-of-arguments (0 . 1) 2) 的错误提示,导致文件无法导出
    • 定位问题
      • 为了了解这一错误提示是什么意思,我在 Emacs-China 论坛和 Reddit 的 r/Emacs 版块里发帖咨询。
      • 经由两边的 Emacs 高手提示下,回忆出现错误提示前两天,我通过 elpa 的方式,安装了 org 9.5 和 org-sidebar,于是我初步怀疑:
        1. org 版本冲突
        2. org-sidebar 插件冲突
    • 解决问题
      • 尝试 1:根据以上 2 个怀疑,首先我把 org-sidebar 删除,并把它从配置文件里里注释掉。但问题依旧。

      • 尝试 2:打算删除 org-mode 但不成功,因为 Package 判断 org-mode 有大量依赖关系,不可删除。然后我发现,straight.el 会自己编译一份 org-mode,这导致我的 Emacs 里有三个版本,内置的、新装的 9.5 和 straight.el 编译的。

        于是,我首先注释掉配置文件里使用的所有 straight.el 字段。然后,删除 Emacs 内置的 org、插件文件夹里的 org 9.5 和 straight.el 编译的 org。

        重新打开 Emacs,发现它提示,找不到 Org 这个插件的文件。然后,我用 elpa 的方式重新安装了 org 9.5。

        重新启动 Emacs,这一次问题得到解决!


请问这个错误提示是什么意思?

Wrong number of arguments: (0 . 1), 2

更新:

运行了 Debug,提示如下:

Debugger entered–Lisp error: (wrong-number-of-arguments (0 . 1) 2)

org-in-archived-heading-p(nil nil)

org-agenda-skip()

org-agenda-get-todos()

org-agenda-get-day-entries("~/我的坚果云/worklog.org" (11 18 2021) :todo)

org-todo-list(nil)

funcall-interactively(org-todo-list nil)

call-interactively(org-todo-list)

org-agenda(nil)

funcall-interactively(org-agenda nil)

call-interactively(org-agenda nil nil)

command-execute(org-agenda)

1赞

你输入的命令是什么?看错误提示,参数的数目不对;

我就是正常的唤出 agenda,还有就是 org-mode-export 里也会出现这个提示

今天解决了问题,把解决思路记录了下来,也想分享出来,给大家参考。 本来想着更新帖子,它会自动顶上去,解决发现没有,所以,多发一条帖子(还是多发了一条帖子),让大家看看。 若造成噪音污染,不好意思。

:+1: 期待多多分享。

1赞

(straight-use-package '(org :type built-in)) 放到配置文件最前面就能强制使用内置org了。

不过感觉你的问题可能不在这里,有可能是straight拉取的org版本太新,org-in-archived-heading-p函数用法变了,导出md文件的包没有相应地修改才导致错误,因为straight会处理好load-path,不会有内置包和它自动拉取的包的冲突的问题。。。

是这样的,我用 straight 安装了 org-sidebar,当天我还直接用 packages-install 安装了 org 9.5。

然后,我在 straight 的文件夹里发现了 org 4.4 的版本。

我怀疑因此而导致了冲突。