Emacs から rbenv を使う

gist を表示する練習を兼ねて、Emacs で rbenv を使う elisp を作ってみた。

ググってみると exec-path を設定する話がやたら出てくるけど、rbenv でインストールした複数の ruby を切り替えて使う例が出てこない。

以下のように環境変数に使いたい ruby のバージョンを指定すれば切り替えられる。

(setenv "RBENV_VERSION" "1.9.3-p194")

指定した rubyrcodetools などで使えるようになっている。

RUBY_DESCRIPTION # => "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]"

でも、いちいち環境変数設定するのが面倒すぎる。

(require rbenv) して、M-x rbenv すると、メッセージバッファでインストールした ruby を選択できる。

以下のように補完もできる。

Click <mouse-2> on a completion to select it.
In this buffer, type RET to select the completion near point.

Possible completions are:
1.8.7-p370 	1.9.3-p125
1.9.3-p194 	jruby-1.6.7.2
rbx-1.2.4

j TAB で jruby-1.6.7.2 を選択してみた。

RUBY_DESCRIPTION # => "jruby 1.6.7.2 (ruby-1.8.7-p357) (2012-05-01 26e08ba) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_33) [darwin-x86_64-java]"

xmp すると、ちゃんと切り替わったことが確認できる。

いろいろ言いたいこともあるだろうが、自分にとってはこれで充分。