Emacsパッケージ管理の良い方法について


Emacsを沢山のOS・マシン上で動かすため、パッケージ管理について良い方法を探しています。

Emacsのバージョンは現在の最新24.4です。どのようなマシンでもこのバージョンなため、最新版以外で動くことを考慮しなくて良いです。

欲しい回答は、以下の好ましい方法を可能な限り実現出来ている方法です。

  * 設定ファイルとEmacsのパッケージのみで完結する(OSにコマンド等を入れる必要がない)
  * 複数のOS(Windows含む)で動く
  * パッケージ自動インストールが可能
  * (上に繋げて)Gitプロトコル等を使い、リポジトリ以外の所からパッケージを取得出来る(つまり、いわゆる野良パッケージを自動でインストール出来る)
  * 設定を簡単に書ける

勿論、以上の好ましい手法以外のメリットがある方法もあれば嬉しいですし、全てを満たす必要はありません。

試行錯誤としては、Package.el+自作の関数群やQuelpa、Caskを試しました。ですが、どれも条件の全ては満たさなかったと考えています。

現在はPackage.elに以下のようなコマンドを実装して、パッケージをインストールする際に使っています。

[code]

    (defvar my/favorite-packages
      '(package names here))
    (defun  set-pac ()
      "my package install command"
      (interactive)
      (package-refresh-contents)
      (dolist (package my/favorite-packages)
        (when (not (package-installed-p package))
        (package-install package))))
    
[/code]

何か他にももっと条件を満たす、良い方法が無いでしょうか？




[use-package](https://github.com/jwiegley/use-package) を利用するのはどうでしょうか。

  * [use-packageで可読性の高いinit.elを書く- Qiita](http://qiita.com/kai2nenobu/items/5dfae3767514584f5220)

ロード後の設定、条件分岐、遅延ロード、キー設定など.emacs
を書く際に必要な要素はひと通り揃っています。おまけにライブラリの読み込みと設定をひとつのS式でまとめられるため、可読性も良くなります。

package.el による外部パッケージの自動インストールが必要ならば、引数に `:ensure t`
を追加してください。これがない場合は自動インストールは行われず、設定はスキップされます。

[code]

    (use-package magit
      :ensure t)
    
[/code]

