3

在我的 .emacs 文件中添加以下代码后,在启动 emacs 期间出现了一些错误。我是emacs的新手,有没有人可以帮我弄清楚错误来自哪里?

在 .emacs 中添加代码:

;; Auto-saving the Desktop
(require 'desktop)
(desktop-save-mode 1)
(defun my-desktop-save ()
  (interactive)
  ;; Don't call desktop-save-in-desktop-dir, as it prints a message.
  (if (eq (desktop-owner) (emacs-pid))
      (desktop-save desktop-dirname)))
(add-hook 'auto-save-hook 'my-desktop-save)

错误: 在此处输入图像描述

4

1 回答 1

1

查看中断的函数定义,似乎错误是 prj-fileNIL在第 492 行。(函数中的另一个expand-filename调用不应该有一个 nil,因为它是一个非 nil 列表的汽车文件名)。

现在,prj-file/home/shenyan/Test/memcached-1.4.11匹配正则表达式的第一个文件名"\\(Root\\)?ProjStep.ede",大概没有。由于 memcached 可能没有 EDE 项目文件,因此出错的原因一定是第 508 行对 ede-project-p 的调用在使用/home/shenyan/Test/.

我无法弄清楚发生这种情况的确切原因,但是您可以很容易地进行调试。首先打开您的*scratch*缓冲区以轻松键入 emacs lisp。要检查我的猜测,请将以下代码插入缓冲区

(ede-directory-project-p "/home/shenyan/Test/memcached-1.4.11")

C-x C-e并通过在右括号上点击光标来运行它。如果它返回nil我错了。否则,您已经找到了罪魁祸首,并且可能应该通过搜索ede-files.elede-directory-project-p中的位来进一步调试它。

可能发生的情况是您的/home/shenyan/Test/目录中有一些东西告诉 EDE 搜索子目录(或者这可能是默认的?)然后 memcached 子目录有一个文件,其名称使 EDE 认为应该搜索项目文件。如果您弄清楚到底发生了什么,您可能会考虑向 EDE 开发人员提交一个错误:如果项目文件不存在,他们可能不应该出错。

于 2012-05-30T08:22:04.430 回答