5

我正在关注Clojure 的 Emacs/Swank/Paredit 的温和教程中的指南和信息

然而,在打开 elpa 并安装 clojure-mode、slime 和 paredit 之后。我重新启动了 emacs,然后尝试使用 Mx slime,但它一直说不匹配。我究竟做错了什么?

然后我尝试从 marmalade http://marmalade-repo.org/packages安装 clojure-mode我对包 el 进行字节编译,然后添加 (add-to-list 'package-archives '("marmalade" ." http:// /marmalade-repo.org/packages/ ")) 到 my.emacs。但是,将 Symbol 的值作为变量的果酱错误是 void: package-archives 。

不确定我做错了什么我在 windows7 上使用 emacs 23.3。我已将 clojure 安装到 c:/clojure。

任何帮助表示赞赏。

4

5 回答 5

8

我的 init.el 有(require 'package)(package-initialize)。它不是很大,它看起来像这样:

(require 'package)
;; Add the original Emacs Lisp Package Archive
(add-to-list 'package-archives
             '("elpa" . "http://tromey.com/elpa/"))
;; Add the user-contributed repository
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

我在 Windows 7 上使用 emacs 24(开发版本)。我也无法让 emacs 23 与软件包一起使用,对我来说升级更容易。

顺便说一句,我注意到如果我设置了 HOME 环境变量,emacs 会在那里查找 .emacs.d 目录(而不是在 %USER_PROFILE%\AppData\Roaming 中)。

于 2011-06-28T17:51:03.697 回答
2
  1. 下载 package.el(不要按照 ELPA 网站上的说明,只需下载 marmalade 网站上提供的 package.el)。
  2. 将 package.el 放入您的 .emacs.d 目录 (~/.emacs.d/)。
  3. 将以下内容添加到您的 .emacs 文件 (~/.emacs) 中:

;;Load path to my packages

(add-to-list 'load-path "~/.emacs.d/")

;;Load ELPA (the package.el you downloaded from marmalade)

(require 'package)

;;Load Marmalade (the code found on marmalade's welcome page)

(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))

就是这样!我真的希望这会有所帮助。

编辑:对不起,我忘了提到您需要在我提供的代码末尾添加 (package-initialize)。如果不添加此行,将安装包,但不会加载。

于 2011-10-04T07:27:39.937 回答
1

我认为,你需要把

(require 'package)

在“添加到列表”之前

PS并在“添加到列表”之后添加以下调用

(package-initialize)

此命令将加载已安装的软件包并激活它们

PPS '(require 'package)' 可能不需要,但我个人没有使用 'package.el'

于 2011-06-28T14:02:32.613 回答
0

在我看来,您缺少(require 'package)(package-initialize)你可以在这里查看我的设置——我在 Windows 7 上同时使用了 marmalade 和 clojure-mode,它就像一个魅力。

于 2011-06-28T17:37:42.850 回答
0

不知道是不是同样的问题,我在尝试使用 quicklisp 的 swank/slime 时遇到了

最后我发现如果A的依赖包是B,则很少有/contrib/*.el包相互依赖,如果B没有字节编译,则A将无法编译

当你这样做时(需要'A)

它会抛出 Symbol 的变量 value is void: A

因此,请确保编译每个包而不是尝试 require。

于 2011-07-23T20:17:15.390 回答