2

dotfilesリポジトリ内のGitサブモジュールを使用して、使用する各Emacsパッケージを追跡しています。ただし、パッケージマネージャーがEmacs 24に組み込まれているので、より公式で使いやすい方法に切り替えたいと思います。

切り替えに関する私の問題:現在のGitサブモジュール方式では、dotfilesリポジトリのクローンには、参照されているすべてのアドオンが含まれていることが保証されています。 このパッケージマネージャーには、パッケージの同期を可能にする組み込み機能があります。これにより、Gitリポジトリのプルに必要なパッケージが含まれます(または、1つのコマンドですべてをインストールできます)。

この組み込みのようなものがない場合、パッケージのテキストベースのリストを維持するために使用できる「post-package-install」フックはありますか(後でリスト内のパッケージをインストールするカスタムコマンドで読み取り可能)?基本的に、パッケージ/パッケージリストをバージョン管理下に置いて、コンピューター間で移植できるようにしたいと思います。

4

1 に答える 1

4

kindahero の提案で試しel-getてみましたが、これはうまくいきませんでした.コードのバグか、Emacs Lisp のスキルが不足しているため (後者の可能性が高い)、正しくロードされませんでした。

Emacs Preludeプロジェクトに出くわし、ソースをブラウズしているときに非常に単純なコードの断片を見つけました。

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

(when (not package-archive-contents)
  (package-refresh-contents))

(defvar prelude-packages
  '(auctex clojure-mode coffee-mode deft gist haml-mode
                 haskell-mode magit markdown-mode paredit projectile
                 sass-mode scss-mode yaml-mode yari yasnippet)
  "A list of packages to ensure are installed at launch.")

(dolist (p prelude-packages)
  (when (not (package-installed-p p))
    (package-install p)))

私は自分の目的のために恥知らずにこれを盗みましたが、うまく機能しています。パッケージマネージャーに切り替えて(Marmaladeリポジトリを使用)、ほとんどすべてのサブモジュールを削除しました。

于 2011-10-16T00:31:18.917 に答える