Emacs Robe: 选择 ruby 版本

M-x robe-start 报错:

Could not find rake-10.4.2 in any of the sources
Run `bundle install` to install missing gems.

Process rails exited abnormally with code 7

但是在 shell 里运行 bundle install ,显示所有的 gem 都装好了

在 Emacs 中打开 M-x shell , 然后运行 which ruby , 发现跟 .ruby-version 里指定的版本不符。

运行 cd /tmp && cd - 之后, which ruby 返回的结果就跟 .ruby-version 一样了,我想 Emacs 并不知道 .ruby-version 的存在。

看了一下 robe-start 的定义,里面调用了 (inf-ruby-console-auto) , C-h f inf-ruby-console-auto , 看一下其源码,整个文件里也搜不到 .ruby-version 的相关信息,感觉设计的时候根本就没考虑这个问题。

最好是能修改 inf-ruby ,让它读取 .ruby-version ,然后用其指定的 ruby 版本运行,但做这样的修改比较麻烦,更简单的解决方案是在 Emacs 中指定要用的 Ruby 版本号。

M-x rvm-use ,然后再 M-x robe-start ,问题解决。