Preludeの使い方

  • Emacs設定パッケージ的なもの
  • 自分で一から設定するのがめんどくさい人はこういうものを使うとよい
  • インストールの手順は後述

概要

  1. 「~/.emacs.d/prelude-modules.el」 を編集し、使いたい初期パッケージを選ぶ
  2. 「~/.emacs.d/preload/」以下は、Preludeに関係なく設定したい内容を書く
  3. 「~/.emacs.d/personal/」以下に自分の設定を書く

Prelude流のパッケージ追加方法

  • 必要なパッケージは、「prelude-require-package」(単体用)もしくは「prelude-require-packages」(複数指定用) という自前の関数で読み込むことができる
  • でも、僕はそれを使わずに use-package を使うことにしている

(prelude-require-package 'use-package)
(prelude-require-package 'init-loader)
(prelude-require-package 'key-chord)
...

インストール

PreludeはEmacsパッケージではないので、以下の手順で自分でインストールする必要がある

  1. オリジナルのGitHubを自分のGitHubにフォークする
  2. Forkしたリポジトリをチェックアウトする
  3. master(=オリジナルGitHubのようなもの)を汚さないように、自分のコミット用ブランチ(=trunk)を作成する
  4. 本家の更新の取り込み方
  • Prelude本家のGitHub(もしくは、Forkした自分のリポジトリ)のREADME.mdに書いてある方法に従う
  • 既に ~/.emacs.d/ がある場合は、~/.emacs.d.pre-prelude.tar という名前でバックアップが作成される

$ export PRELUDE_URL="https://github.com/shotakaha/prelude.git" && curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   141    0   141    0     0    178      0 --:--:-- --:--:-- --:--:--   183
100  7996  100  7996    0     0   5379      0  0:00:01  0:00:01 --:--:-- 31604
 Checking to see if git is installed...  found.
 Checking to see if aspell is installed...  not found. Install aspell to benefit from flyspell-mode!

 Backing up the existing config to /Users/shotakaha/.emacs.d.pre-prelude.tar.

Cloning the Prelude's GitHub repository...
Cloning into '/Users/shotakaha/.emacs.d'...
remote: Counting objects: 4785, done.
remote: Compressing objects: 100% (1992/1992), done.
remote: Total 4785 (delta 2706), reused 4785 (delta 2706)
Receiving objects: 100% (4785/4785), 2.42 MiB | 299.00 KiB/s, done.
Resolving deltas: 100% (2706/2706), done.
Checking connectivity... done.
 Making the required directories.
 Bytecompiling Prelude.

  ____           _           _
 |  _ \ _ __ ___| |_   _  __| | ___
 | |_) |  __/ _ \ | | | |/ _  |/ _ \
 |  __/| | |  __/ | |_| | (_| |  __/
 |_|   |_|  \___|_|\__,_|\__,_|\___|

 ... is now installed and ready to do thy bidding, Master shotakaha!
 Don't forget to adjust the modules you want to use in /Users/shotakaha/.emacs.d/prelude-modules.el!

  • 本家に更新があった場合に取り込めるように、「upstream」という名前のリモートブランチを用意しておく
  • 基本的に Pull Request はしない予定

$ cd .emacs.d/    ## Preludeのローカルリポジトリに移動

$ git br -a    ## いまあるブランチを確認する
 * master
   remotes/origin/HEAD -> origin/master
   remotes/origin/gh-pages
   remotes/origin/master

$ git remote -v    ## リモートリポジトリが指している先を確認する
origin	https://github.com/shotakaha/prelude.git (fetch)
origin	https://github.com/shotakaha/prelude.git (push)

$ git remote add upstream https://github.com/bbatsov/prelude.git    ## 本家リポジトリを"upstream"という名前で追加する

$ git remote -v    ## リモートリポジトリが指している先を確認する(upstreamが追加されている)
origin	https://github.com/shotakaha/prelude.git (fetch)
origin	https://github.com/shotakaha/prelude.git (push)
upstream	https://github.com/bbatsov/prelude.git (fetch)
upstream	https://github.com/bbatsov/prelude.git (push)

$ git br -a    ## いまあるブランチを確認する(upstreamが追加されていない)
 * master
   remotes/origin/HEAD -> origin/master
   remotes/origin/gh-pages
   remotes/origin/master

$ git fetch upstream    ## upstreamをブランチに追加する
From https://github.com/bbatsov/prelude
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/master

$ git br -a    ## いまあるブランチを確認する(upstreamが追加されている)

 * master
   remotes/origin/HEAD -> origin/master
   remotes/origin/gh-pages
   remotes/origin/master
   remotes/upstream/gh-pages
   remotes/upstream/master

  • 上記の参考サイトを読むと、master には手を加えないほうがいいみたいなので、“trunk”という、作業用ディレクトリを用意する

$ cd .emacs.d/
$ git br trunk
$ git co trunk

$ git br -a
   master
 * trunk
   remotes/origin/HEAD -> origin/master
   remotes/origin/gh-pages
   remotes/origin/master
   remotes/upstream/gh-pages
   remotes/upstream/master

  • 本家の更新を作業ブランチ(trunk)に取り込む
  • 作業ブランチが汚れていても大丈夫みたい

$ git co trunk

$ git fetch upstream
From https://github.com/bbatsov/prelude
   fef6907..b24bea0  master     -> upstream/master

$ git merge upstream/master
Merge remote-tracking branch 'upstream/master' into trunk