首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试让package.el在Mac上运行

尝试让package.el在Mac上运行
EN

Stack Overflow用户
提问于 2011-11-19 16:36:17
回答 2查看 1.3K关注 0票数 1

我的最终目标是在Mac上通过Emacs运行Clojure/Swank/slim.为此,我在Emacs中安装了各种模式(我正在尝试Aquamacs和EMacsforMacOsx)。我已经看过这里和其他网站上的一些帖子,目前的建议似乎是使用ELPA。

我从here获取了我认为是最新的package.el (针对Emacs23.x),我可以用它来安装clojure-mode。因为我想知道一切都正常工作,所以我也尝试删除我安装的包。当我这样做时(我使用package-list-packages,D来删除,X来执行),我得到了以下错误:

代码语言:javascript
复制
 `condition-case: Wrong type argument: stringp, #[(directory &optional recursive)  ... ... [directory handler recursive delete-by-moving-to-trash directory-files-no-dot-files-regexp  directory-file-name expand-file-name find-file-name-handler delete-directory directory-files  ...] 7 1863281 (let ((dir (expand-file-name (read-file-name "Delete directory: " default- directory default-directory nil nil)))) (list dir (if (directory-files dir nil directory-files-no-dot-files-regexp) (y-or-n-p (format "Directory `%s' is not empty, really delete? " dir)) nil)))]` 

其中...s是一组十六进制字符

在我尝试过的两个版本的Emacs上都发生了这种情况。

我使用的package.el版本是否正确。

如果是这样,我可以做些什么来解决这个问题?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-11-20 22:10:18

假设您有正确的package.el (但请参阅sanityinc的注释),显式地加载源文件(load-file "..../package.el"),然后执行M-x debug-on-entry package-delete。当您调用该函数时,这将把您放到调试器中(这似乎是引发错误的地方)。在调试器中使用d' to step orc‘继续执行评估。将源代码显示在单独的缓冲区中,这样您就可以更容易地进行跟踪。

似乎正在发生的情况是,在调用(delete-directory dir t t)时,DIR参数不是字符串,这意味着package--dir没有返回目录(字符串)。

而且,您的delete-directory版本的参数看起来是(directory &optional recursive)。至少在Emacs24中的目录版本中,‘`delete package.el’实际上是用3个参数调用的。但是您没有收到错误的参数个数错误,所以您的版本可能是不同的。

无论如何,使用调试器尝试找出哪里出了问题。看起来,就像sanityinc建议的那样,你的代码版本不匹配。

票数 1
EN

Stack Overflow用户

发布于 2011-11-21 22:10:44

感谢您的投入。我没有在这上面浪费更多的时间,而是转到了Emacs 24,它给了我所需要的东西。再次感谢,

凯文

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8192865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档