【emacs】package.elとuse-packageでパッケージ管理

先日からemacsのパッケージ管理について少し調べていて先日こちらでCaskを使う方法をメモした。その後、もう少し調べたりしていたところCaskを使わなくてもpackage.el(emacs標準インストールされている)を使えば、設定ファイルを元にパッケージの自動インストールも行えるとのこと。外部ソフトをインストールせずに使えるので今回はこっちの方が良さそうと思った。

またuse-package.elを使えば、以下のように「:ensure t」を書いておけばpackage.elが自動インストールしてくれるみたいで記述もシンプルでみやすい。

(use-package web-mode
  :ensure t
  :mode(("\\.html?\\'" . web-mode))
  :init
  (add-hook 'web-mode-hook
            '(lambda()
               (setq web-mode-markup-indent-offset 2)
               (setq web-mode-code-indent-offset 2)))
  )

今回は、use-package.el自体は、init.elの先頭で自動インストールするように記述した。

;; use-packageのインストール
(require 'package)
(add-to-list 'package-archives '("melpa"."http://melpa.org/packages/"))
(package-initialize)
(unless package-archive-contents (package-refresh-contents))
(unless (package-installed-p 'use-package)
  (package-install 'use-package))

;; 以下、必要なパッケージの設定を追加していく
(use-package web-mode
  :ensure t
  :mode(("\\.html?\\'" . web-mode))
  :init
  (add-hook 'web-mode-hook
            '(lambda()
               (setq web-mode-markup-indent-offset 2)
               (setq web-mode-code-indent-offset 2)))
  )
・・・

これで、init.elさえ管理しておけば別PCなどでも簡単にインストールできるのでより簡単になりました。以上です。