【emacs】CaskとGitでパッケージ管理を共通化して別PCへ簡単に移行

PCの移行でEmacsの設定やパッケージもそのまま持っていきたくて、.emacs.dをzipで固めて移行先のPCに移行。みたいなことをしていたのだが、プログラムではgitで設定ファイルだけ管理してとかみんなやってるのに何でこんなことしてるんだと思ったのでCaskというのを使って設定ファイルで管理してみることにした。

Caskを使う

ここに書いてあるとおりにやったらいけた
http://vdeep.net/emacs-cask

Caskのインストール

$ brew install cask

Caskの初期化

$ cd ~/.emacs
$ cask init

~/.emacs/Cask が作成されるのでここに管理したいパッケージを以下みたいに追加していく。

(depends-on "auto-complete")
・・・

~/.emacs.d/init.el にCaskを使うように追加

(require 'cask)
(cask-initialize)
・・・

パッケージインストール

$ cd ~/.emacs.d
$ cask install

あとは、emacsを起動すればパッケージが使える

別PCでセットアップ

Caskファイルとinit.elをgitで管理して、別PCではcloneしてセットアップ用のスクリプトを叩くだけという形にしたい。

これはこちらを参考にした
https://qiita.com/okamos/items/7f5461814e8ed8916870

$ tree ~/dotofiles/
/Users/xxxxx/dotofiles/
├── emacs
│ ├── Cask
│ └── init.el
└── setup.sh

で、こんな感じの構成で3ファイル管理。

setup.sh に以下のようにシンボリックを貼るだけのスクリプトを用意

#!/bin/sh                                                                                                                                                                                                                                     

## emacs                                                                                                                                                                                                                                      
ln -sf ~/dotofiles/emacs/Cask ~/.emacs.d/Cask
ln -sf ~/dotofiles/emacs/init.el ~/.emacs.d/init.el

これをgitで管理して別PCで、git cloneしてsh setup.shすれば必要なパッケージのインストールと設定もそのまま使えた。以上です。