10

我使用 Aquamacs,我使用 ELPA 将文件安装到 ~/.emacs.d/elpa?

这个 ELPA 背后的魔力是什么?我的意思是,如果没有 ELPA,我应该下载包并将其安装在特定目录中,然后将这两行添加到 .emacs 中。

(添加到列表'加载路径“PACKAGE_DIRECTORY”)
(需要'PACKAGE)

但是,对于 ELPA,我没有看到任何添加到 .emacs 或 /Users/smcho/Library/Preferences/Aquamacs Emacs/{Preferences.el,customizations.el} 的内容。这怎么可能?

添加

这就是我在 Aquamacs 中发现的。

  1. Aquamacs 读取 ~/Preference/Aquamacs Emacs/Preference,它有“(add-to-list 'load-path kitfiles-dir)(require 'init)”,它读取启动套件。
  2. start kit 的 init.el 有“(require 'package)(package-initialize)”
  3. ~/Library/Preferences/Aquamacs Emacs/aquamacs-emacs-starter-kit/vendor 有 package.el

我猜初始化文件没有改变,但是包管理器读取 ~/.emacs.d/elpd/* 来自动初始化,因为我在每个文件中都看到了 ***-autoloads.el 。

添加2

使用 emacs 24,似乎该包是预先构建的。我只需要在 .emacs 或 .emacs.d/init.el 中有这些行就可以让 ELPA 工作。来自本网站的提示。

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

(when (not package-archive-contents)
  (package-refresh-contents))
(defvar my-packages '(clojure-mode
               nrepl))
(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))
4

2 回答 2

15

(package-initialize)将遍历所有已安装的包(在~/.emacs.d/elpa/或类似的,取决于配置),并将它们添加到加载路径。你已经运行了它,看看load-path( C-hvload-path),它会添加所有这些子目录。所以此时,文件加载将使用正常机制。

于 2012-08-31T15:43:57.500 回答
6

(require 'package) (package-initialize)您的初始化文件中有一对。Package.el 有魔力:)

于 2010-08-24T08:54:17.263 回答