ESS で快適 R ライフ ~設定編~(2012年度版)

最近 ESS のバージョンが 5.14 から一気に 12.03, 12.04 と上がったこともあり、設定を1から見直してみました。
今回は ESS を(私が)快適に使うための諸々のインストールと設定についてご紹介します。Emacs のバージョンは23.4.1です。

ESS のインストール

以下の手順で /usr/local 以下に ESS がインストールされます。
インストール先を変更したい場合は ess-12.04/Makeconf の DESTDIR の値を書き換えてください。
以降の作業は DESTDIR がデフォルトの /usr/local であることを前提としています。

$ wget http://ess.r-project.org/downloads/ess/ess-12.04.tgz
$ tar xvf ess-12.04.tgz
$ cd ess-12.04
$ make install

このままだと eldoc がバグってるので拙作のパッチを当てます。

$ wget https://gist.github.com/abicky/2391663/raw/ess-r-d.el.patch
$ patch /usr/local/share/emacs/site-lisp/ess/ess-r-d.el ess-r-d.el.patch
$ cd /usr/local/share/emacs/site-lisp/ess
$ emacs -batch -no-site-file -no-init-file -l ./ess-comp.el -f batch-byte-compile ./ess-r-d.el

auto-install のインストール

R を利用する上では必要ありませんが、快適な ESS 環境を構築するためにいろいろインストールする必要があるのであると便利です。
以降、インストールした *.el ファイルは ~/.emacs.d/site-lisp に保存することにします。

$ mkdir -p ~/.emacs.d/site-lisp
$ wget http://www.emacswiki.org/emacs/download/auto-install.el -O ~/.emacs.d/site-lisp/auto-install.el
$ emacs --batch -f batch-byte-compile ~/.emacs.d/site-lisp/auto-install.el

auto-complete のインストール

auto-complete をインストールすることで Emacs に IDE ライクな補完機能を導入できます1

$ wget http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.tar.bz2
$ tar xvfz auto-complete-1.3.1.tar.bz2
$ cd auto-complete-1.3.1
$ make
$ make install DIR=~/.emacs.d/site-lisp

anything のインストール

anything をインストールすれば Emacs の作業効率は劇的に改善されるでしょう。
まずは、次の内容で ~/.emacs.d/init.el を作成します。

(setq my-site-lisp (expand-file-name "~/.emacs.d/site-lisp"))
(add-to-list 'load-path my-site-lisp)
(require 'auto-install nil t)
(setq auto-install-directory (expand-file-name my-site-lisp))

次の作業は Emacs で作業します。

M-x auto-install-batch [RET] anything

1~2分ぐらいで画面が変わって anything のコードが表示されるので、C-c C-c を押してください。こうすることでコンパイルされます。
15個程度のファイルがダウンロードされるので、全てのファイルに対して C-c C-c を押すことになります。

ESS の機能拡張

myuhe さん作の anything-R と ess-R-object-popup をインストールします。
anything-R をインストールすることで手軽に関数や値の確認ができるようになります。ess-R-object-popup は即座にオブジェクトの内容を確認するのに便利です。
anything 同様、Emacs で作業します。

M-x auto-install-from-emacswiki [RET] anything-R.el [RET] C-c C-c
M-x auto-install-from-gist [RET] 318365 [RET] C-c C-c ess-R-object-popup.el

anything-R はとても便利なんですが、そのままだと C-c r を押した時に最大200の候補を表示するのでちょっと重いです。
anything-for-R-list の値を変更して source を1つにするのもありですが、カスタマイズしやすいようにパッチを当てます。

$ wget https://gist.github.com/abicky/2391813/raw/anything-R.el.patch
$ patch ~/.emacs.d/site-lisp/anything-R.el anything-R.el.patch
$ emacs -batch -L ~/.emacs.d/site-lisp -f batch-byte-compile ~/.emacs.d/site-lisp/anything-R.el

.emacs の内容

自分の利用形態に合わせていろいろ検討した結果、次のような内容にしました。
Emacs 23.4 & ESS 12.04 用です。後方互換性はある程度保証されると思いますが、逆に ESS 5.14 とかだと所望の挙動になりません。

R と ESS の設定に関しては完全に自分好みのものにしていますが、基本的な設定の部分については当たり障りのない程度にとどめています。
できるだけ詳細にコメントを加えたつもりなので、自分好みに変更してみてください。
なお、Emacs は普段 no window で使っているので、グラフを Emacs 上にプロットするなどといったことは想定していません。

次回は ESS(Emacs) の使い方について簡単に紹介したいと思います。

参考

最終的に myuhe さんの「これからEmacsでR使う人のための設定まとめ」とあまり変わらない内容になってしまいました・・・

  1. auto-complete も auto-install でインストールしようとしましたがうまく行きませんでした