代码之家  ›  专栏  ›  技术社区  ›  prosseek

ELPA背后的魔力是什么?

  •  10
  • prosseek  · 技术社区  · 14 年前

    我使用aquamacs,我使用elpa在~/.emacs.d/elpa中安装文件?

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

    (添加到列表“加载路径”package_目录)
    (需要'package)

    但是,对于ELPA,我没有看到任何添加到.emacs或/users/smcho/library/preferences/aquamacs emacs/preferences.el,customizations.el_的内容。这怎么可能?

    补充

    这就是我在水中发现的。

    1. aquamacs读取~/preference/aquamacs emacs/preference,它有“(add to list'load path kitfiles dir)(require'init)”,它读取开始工具包。
    2. start kit的init.el具有“(require”包)(包初始化)
    3. ~/library/preferences/aquamacs emacs/aquamacs emacs starter kit/vendor拥有该软件包。el

    我猜初始化文件没有更改,但是包管理器读取~/.emacs.d/elpd/*自动初始化,正如我在每个文件中看到的那样。

    附加2

    对于Emacs24,包似乎是预构建的。我只需要在.emacs或.emacs.d/init.el中使用这些行就可以让elpa工作。来自暗示 this site .

    (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)))
    
    2 回复  |  直到 11 年前
        1
  •  15
  •   Peter Eisentraut    12 年前

    (package-initialize) 将浏览所有已安装的软件包(在 ~/.emacs.d/elpa/ 或者类似的,取决于配置),并将它们添加到加载路径。你跑过的,看看 load-path ( C-H V 加载路径 ,它将添加所有这些子目录。因此,此时,文件加载将使用正常的机制。

        2
  •  6
  •   tbalazs    14 年前

    你有一个 (require 'package) (package-initialize) 在初始化文件中的某个位置配对。package.el有魔力:)

    推荐文章