Emacsパッケージマネージャーと設定
~/.emacs.d/もinit.elもグチャグチャ。なんとかせねば。
まず、パッケージマネージャー。標準のpackage.elとauto-installとel-getと3つある(Caskは使わない)。どうしたものか? 次のようにすることにした。
- el-getありきとして、el-getのブートストラップは、http://d.hatena.ne.jp/tarao/20150221/1424518030#tips-isolated-setup に従ってやる。
- (add-to-list 'load-path (locate-user-emacs-file "el-get/el-get")) これだけは必要となるが、あとは el-get/* にパッケージが入り、ロードパスも通るので、add-to-list 'load-path は不要となるはず。
- initの設定記述を簡単にするために、bind-keyとuse-packageを使う。(require 'bind-key) (require 'use-package) が必要。これ以降は requireは不要となる。bind-keyとuse-packageがないなら、ここでエラーとなる。bind-key, use-packageの自動インストールも出来るが、とりあえずそれはいいとする。
ここまでのブートストラッピングは:
;; 最初だけ、ロードパス設定が必要。 (add-to-list 'load-path (locate-user-emacs-file "el-get/el-get")) ; これは必要 ;; el-getの導入、なければ持って来てインストールする。 ;; el-get自体が、el-get管理下になる。 (unless (require 'el-get nil 'noerror) ;; githubから.elファイルを取ってきて評価する。 (with-current-buffer (url-retrieve-synchronously "https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el") (goto-char (point-max)) (eval-print-last-sexp))) (el-get 'sync) ; インストールを直列・同期的に実行するように指定 ;; use-package を使えるようにする。 (require 'bind-key) (require 'use-package)
ここから先はuse-package構文で書く。
;; auto-install (use-package auto-install :config (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) ) ;; package.el (use-package package :config ;; Add package-archives (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (add-to-list 'package-archives '("tromey" . "http://tromey.com/elpa/") t) (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) ;; Initialize (package-initialize) )
ProofGeneralやESSがuse-packageで書けるかどうかは分からないが、そういうのは例外でもしょうがないだろう。