Emacs から rbenv を使う
gist を表示する練習を兼ねて、Emacs で rbenv を使う elisp を作ってみた。
ググってみると exec-path を設定する話がやたら出てくるけど、rbenv でインストールした複数の ruby を切り替えて使う例が出てこない。
以下のように環境変数に使いたい ruby のバージョンを指定すれば切り替えられる。
(setenv "RBENV_VERSION" "1.9.3-p194")
指定した ruby が rcodetools などで使えるようになっている。
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 すると、ちゃんと切り替わったことが確認できる。
いろいろ言いたいこともあるだろうが、自分にとってはこれで充分。