EmacsをRuby/Rails/RSpec向けに設定してみる
動機
RailsでRSpecを使っていて、「アプリケーションコードとspecファイルを行き来するのめんどくせー!」ってなった。*1
そこで、調べてみたところ、emacsにはrspec-modeなるものがあり、上記の不満を解決してくれそうだったので設定してみることにした。
はじめに
ユーザーごとのEmacsの設定ファイルは~/.emacsにあります。*3
また、拡張機能*4のインストール先はどこでもいいのですが、今回は~/.emacs.d/elispを使うことにし、Emacsからのload-pathを通しておきます。
$ mkdir ~/.emacs.d/elisp
;; ~/.emacs (setq load-path (cons "~/.emacs.d/elisp" load-path))
ELPA
EmacsにはELPA(Emacs Lisp Package Archive)が存在します。*5
Emacsのカスタマイズを簡単に行うために、まずはELPAを入れていきます。*6
参考
auto-installのインストール
ELPAがauto-installという拡張機能に依存しているので、まずはauto-installを入れます。*7
$ cd ~/.emacs.d/elisp $ curl -O http://www.emacswiki.org/emacs/download/auto-install.el
次に、今入れたauto-install関連の設定をします。
ところどころ、シングルクォートが閉じられてなくて気持ち悪いですが、動きます。*8
;; ~/.emacs ;;auto-installの設定 (when(require 'auto-install nil t) ;;インストールディレクトリを設定する (setq auto-install-directory "~/.emacs.d/elisp/") ;;EmacsWikiに登録されているelispの名前を取得する (auto-install-update-emacswiki-package-name t) ;;install-elispの関数を利用可能にする (auto-install-compatibility-setup) )
ここまででauto-installのインストール及び設定ができたはずです。
ELPAのインストール
それでは、ELPAを入れていきます。
Emacsを起動して、
M-x install-elisp RET http://bit.ly/pkg-el23 RET
すると、冒頭に
;;; package.el --- Simple package system for Emacs ;; Copyright (C) 2007-2011 Free Software Foundation, Inc.
とか書かれた長いElispファイルが表示されるので、C-c C-cで保存します。
さっきと同じように設定します。
;; ~/.emacs ;;package.elの設定 (when (require 'package nil t) ;;パッケージリポジトリを追加 (add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) (add-to-list 'package-archives '("ELPA" . "http://tromey.com/elpa/")) ;;インストールするディレクトリを指定 (setq package-user-dir(concat user-emacs-directory "elpa")) ;;インストールしたパッケージにロードパスを通して読み込む (package-initialize) )
以上でELPAのインストールが完了します。
拡張機能のインストール
便利な拡張機能たち
カッコ内はmode-lineに表示されるmode名。
ruby-mode(ruby)
ruby-modeはデフォルトで入っていますが、Rakefileにruby-modeが適用されないのでそれを修正。
;; ~/.emacs (add-to-list 'auto-mode-alist '("Rakefile$" . ruby-mode))
ruby-electric(REl)
do endや{}などのブロックを閉じる要素を保管してくれます。