10

Aquamacsを使用していますが、〜/ .emacs.d / elpaにファイルをインストールするELPAを使用していますか?

このELPAの背後にある魔法は何ですか?つまり、ELPAを使用しない場合は、パッケージをダウンロードして特定のディレクトリにインストールし、それらの2行を.emacsに追加する必要があります。

(リストに追加'ロードパス"PACKAGE_DIRECTORY")
(' PACKAGEが必要)

しかし、ELPAでは、.emacsまたは/ Users / smcho / Library / Preferences / Aquamacs Emacs / {Preferences.el、customizations.el}に何も追加されていません。これはどのように可能ですか?

追加した

これは私がAquamacsで見つけたものです。

  1. Aquamacsは〜/ Preferences / Aquamacs Emacs / Preferencesを読み取り、「(add-to-list'load-pathkitfiles-dir)(require'init)」を持っています。これはstartkitを読み取ります。
  2. スタートキットの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では、パッケージが事前に構築されているようです。ELPAを機能させるには、これらの行を.emacsまたは.emacs.d/init.elに含めるだけで済みます。このサイトからのヒント。

(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 に答える