TextMate,rvm和TM_RUBY

在TextMate RVM指令中 ,它说明将TM_RUBY设置为/Users/wayne/.rvm/bin/textmate_ruby并在图像中显示它设置为rvm-auto-ruby 。 我决定将它设置为rvm-auto-ruby ,认为它将使用RVM的默认Ruby版本。

在将TM_RUBY设置为rvm-auto-ruby的RSpec.bundle中运行Command R ,将导致加载错误 。 当你将它设置为textmate_ruby它可以工作。

这里唯一的问题是TextMate并不总是使用默认版本的Ruby,因为它在该文件中是硬编码的。

/Users/jspooner/.rvm/bin/textmate_ruby

 #!/usr/bin/env bash if [[ -s "/Users/jspooner/.rvm/environments/ruby-1.9.2-head" ]] ; then source "/Users/jspooner/.rvm/environments/ruby-1.9.2-head" exec ruby "$@" else echo "ERROR: Missing RVM environment file: '/Users/jspooner/.rvm/environments/ruby-1.9.2-head'" >&2 exit 1 fi 

所以有两个问题:

  1. TM_RUBY=rvm-auto-ruby究竟应该怎么做?
  2. 有没有办法让TextMate使用RVM默认值?

在TextMate和rvm中查看您的其他类似问题Rspec包已损坏 。


为了帮助其他人追逐同样的问题,解决方案似乎是: RVM / Textmate不识别.rvmrc选项 。

基本上你用文件替换~/.rvm/bin/textmate_ruby软链接。 这就是我做的:

  1. cd ~/.rvm/bin
  2. mv textmate_ruby old.textmate_ruby
  3. 使用以下内容在同一目录中创建名为textmate_ruby的shell脚本以替换软链接:
    
    

    !/ usr / bin / env sh

    source~ / .rvm / scripts / rvm cd。 exec ruby​​“$ @”
  4. chmod +x textmate_ruby

在进行此更改之前,如果我使用CMD + R在TextMate中运行以下脚本,我会看到我的系统Ruby的版本(1.8.7):

 puts RUBY_VERSION 

使用CMD + CNTRL + SHIFT + E评估脚本给了我1.9.2。

切换到使用该脚本后,都指向Ruby 1.9.2,所以至少现在有一些一致性。 我没有看到TextMate跟踪我当前设置的RVM Ruby版本; 相反,它使用RVM中设置的默认版本: rvm use 1.9.2 --default 。 这仍然是向前迈出的一步,因为我可以通过调整我的--default来控制Ruby TextMate使用的--default

如果您决定稍后要还原,只需重命名或删除脚本并反转上面的步骤2。

将TM_RUBY设置为your-path/rvm-auto-ruby

http://rvm.io/integration/textmate/

应该加载任何ruby和gemset在项目中的.rvmrc文件中指示,如果没有默认为rvm默认值。 我刚刚开始工作,非常顺利。 我确实需要获得最新版本的rvm

 rvm get head 

使其工作并重新启动Textmate。 希望有所帮助。