Emacs桌面保存模式启动错误

Emacs桌面保存模式启动错误,emacs,desktop,Emacs,Desktop,在我的.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 mes

在我的.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)
错误:

查看正在中断的内容,似乎错误在于第492行的prj文件是
NIL
。(函数中的另一个
expand filename
调用不应该有nil,因为它是非nil文件名列表的核心)

现在,
prj文件
/home/shenyan/Test/memcached-1.4.11
中与regexp
“\\(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-directory-project-p
进行进一步调试


可能发生的情况是,您的
/home/shenyan/Test/
目录中有一些内容告诉EDE搜索子目录(或者可能是默认的?),然后memcached子目录中有一个文件,其名称使EDE认为应该搜索项目文件。如果你确切地知道发生了什么,你可能会考虑向埃代开发人员提交一个bug:如果项目文件不存在,他们可能不应该出错。请编辑您的问题,它似乎不完整。我已将您的代码添加到我的init文件中,并且在启动或关闭时未收到任何错误。从您指定的错误文件的外观来看,我猜它以某种方式连接到了EDE,您是否在未加载EDE(或cedet的任何部分)的情况下尝试过此操作?请注意,根据[,您可以通过在memcached目录中添加一个文件
.EDE ignore
,来阻止EDE崩溃,但我想如果能够正确地修复问题,那将是一件好事。