以下のコメントで述べたように:重複した質問に対する phils の回答は、おそらくこれよりも役立つでしょう。
これは、ほぼ確実init.el
に、パッケージを分類するコードの前にファイルが実行されることを意味しますpackage.el
。後者のコードは、オートコンプリート ライブラリを含むディレクトリをロード パスに追加します。
package.el ではなく、まだ ELPA を使用しています。elpa を使用すると、このようなスニペットが の下部にインストールされます.emacs
。
;;; This was installed by package-install.el.
;;; This provides support for the package system and
;;; interfacing with ELPA, the package archive.
;;; Move this code earlier if you want to reference
;;; packages in your .emacs.
(when
(load
(expand-file-name "~/.emacs.d/elpa/package.el"))
(package-initialize))
package.el
コメントが示唆するように、おそらく同等の初期化コードをロードするものの前に置きたいと思うでしょうinit.el
。
.emacs.d
最後に: に追加することに言及していることに気付きましたload-path
。Emacs のロード パスは再帰的ではないため、必要な処理が行われない可能性があります (ライブラリがサブディレクトリにあると仮定すると)。何年も前に、私が書いた elisp コードのさまざまなライブラリをロードするために、このスニペットを書きました。役に立つかもしれません。(明らかに、シェルと find コマンドを使用する unixy システムでのみ動作します。かなり遅いですが、shell-command-to-string
「echo hello」などを実行しても数ミリ秒かかるようです)
(defun find-elisp-dirs (dir)
"Find all directories below DIR containing elisp sources, ignoring those"
(split-string
(shell-command-to-string
(format "find %s -iname '*.el' -printf '%%h\\n' | sort -u"
(expand-file-name dir t)))))