el-get.elでinit-loader.elをインストールする

Posted by Tatsuyano on Tue, Mar 19, 2013
In
Tags emacs

インストールしたいパッケージが、el-get のパッケージリストにない場合

自分でレシピを作成(設定)し、パッケージリストに追加します。リストに追加する方法は2つあります。

  • レシピ(rcpファイル)を作成し .emacs.d/elisp/el-get/el-get/recipes/ 以下にファイルを置く方法
  • init.el などに直接設定を記述する方法

どちらも設定する内容は一緒なので、今回は直接設定することにします。設定する内容は主に以下のようになります。

(:name {パッケージ名}
       :type {パッケージ配布方法: elpa, emacswiki, git, svn, http, ...}
       :url {パッケージURL}
       :after {後処理} ...)

最新のinit-loader.el

init-loader.elの最新ファイルは 現在gist にあるので、
まずは rawファイルのURLを確認します。

https://raw.github.com/gist/1021706/init-loader.el

レシピの追加

init.el

(setq el-get-dir "~/.emacs.d/elisp/el-get/")

(unless (require 'el-get nil 'noerror)
  (with-current-buffer
    (url-retrieve-synchronously
      "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
    (goto-char (point-max))
    (eval-print-last-sexp)))

(setq el-get-sources
      '(
      (:name init-loader
      :type http
      :url "https://raw.github.com/gist/1021706/init-loader.el"
      :description "[My Recipes] Split management init.el.")
      ))
(el-get 'sync)

インストール

レシピが正しい場合、 M-x el-get-list-packages で init-loader が追加されているので、インストールできます。

init.elの分割

今まで、init.elにすべて記述していた内容をパッケージごとに分割します。

conf
├── 00-basic.el
├── 01-truncate-lines.el
├── 10-el-get.el
├── 11-auto-install.el
└── 12-auto-complete.el

init.el

(setq load-path
  (append
  (list
  (expand-file-name "~/.emacs.d/")
  (expand-file-name "~/.emacs.d/elisp/")
  (expand-file-name "~/.emacs.d/elisp/el-get/init-loader/")
  (expand-file-name "~/.emacs.d/elisp/el-get/el-get/")
  (expand-file-name "~/.emacs.d/elisp/auto-install/")
  )
  load-path))

(require 'init-loader)
(init-loader-load "~/.emacs.d/conf")

10-el-get.el

(setq el-get-dir "~/.emacs.d/elisp/el-get/")

(unless (require 'el-get nil 'noerror)
  (with-current-buffer
    (url-retrieve-synchronously
    "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
    (goto-char (point-max))
    (eval-print-last-sexp)))

(setq el-get-sources
      '(
      (:name init-loader
      :type http
      :url "https://raw.github.com/gist/1021706/init-loader.el"
      :description "[My Recipes] Split management init.el.")
      ))

(el-get 'sync)