31 July 2012

bash等のシェルからは、以下のようなRVMの初期化が動作しますが、

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

CocoaEmacsのEshellには上記の設定は反映されません。

ググってStack Overflowを見たらrvm.elというスクリプトを使うことで、EshellでもRVMの環境を作ることができそうです。

ruby - Using RVM in eshell of Emacs - Stack Overflow

rvm.elは以下で配布されているので、インストールしてみました。

senny/rvm.el

rvm.elのインストール先は、~/.emacs.c/plugins以下にしました、

$ cd ~/.emacs.d/plugins/
$ git clone https://github.com/senny/rvm.el.git
Cloning into 'rvm.el'...
remote: Counting objects: 328, done.        
remote: Compressing objects: 100% (243/243), done.        
remote: Total 328 (delta 136), reused 233 (delta 82)        
Receiving objects: 100% (328/328), 77.87 KiB, done.
Resolving deltas: 100% (136/136), done.

初期化を~/.emacs.d/init.el等に、

(add-to-list 'load-path "~/.emacs.d/plugins/rvm.el")
(require 'rvm)
(rvm-use-default) ;; use rvm's default ruby for the current Emacs session

上記の設定で、Emacsを再起動すればEshell上で、RVM環境をセットアップすることができます。

あと余談ですが、localeの設定をしておかないと、rubyの実行にうまくいかない場合がありました。init.el等に使いたいlocaleの設定を追加するとよいかもしれません。

(setenv "LANG" "en_US.UTF-8")


blog comments powered by Disqus