2010-11-30 73 views
5

TextMate RVM instructions它說,設置TM_RUBY/Users/wayne/.rvm/bin/textmate_rubythe image這表明它設置爲rvm-auto-ruby文本。我決定將它設置爲rvm-auto-ruby,認爲它會使用RVM的默認Ruby版本。TextMate的,RVM和TM_RUBY

在RSpec.bundle中運行Command R時,將TM_RUBY設置爲rvm-auto-ruby將導致load error。當您將其設置爲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 "[email protected]" 
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默認?

回答

7

查看另一個相似的問題Rspec bundle is broken in TextMate and rvm


幫助別人追逐同樣的問題,解決方案似乎是:RVM/Textmate doesnt recognize .rvmrc Options

基本上你用一個文件替換了~/.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 "[email protected]"
  4. chmod +x textmate_ruby

在做這個改變之前,我會看到我的系統Ruby的版本(1.8.7)顯示如果我做CMD + [R在TextMate中運行以下腳本:

puts RUBY_VERSION 

進行評價,採用CMD + CNTRL + SHIFT +Ë給我1.9.2腳本。

切換到使用該腳本後,都指向Ruby 1.9.2,所以至少現在有一些一致性。我沒有看到TextMate跟蹤我當前設置的RVM Ruby版本;相反,它使用RVM中設置的默認版本:rvm use 1.9.2 --default。這仍然是一個進步,因爲我可以通過調整我的--default來控制哪個Ruby TextMate使用。

如果您決定稍後想要恢復,只需重命名或刪除腳本,然後執行上述步驟2即可。

+0

謝謝,這工作。我不得不從TextMate中刪除`PATH` shell變量。不知道這是如何相互作用,或者爲什麼我以前放在那裏(不記得),但刪除它有幫助。 – 2012-05-09 06:53:46

10

設置TM_RUBY到your-path/rvm-auto-ruby

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

應該加載任何紅寶石和寶石在位於項目,如果沒有默認RVM默認.rvmrc文件指示。我剛剛得到這個工作,它非常順利。我確實需要獲得最新版本的rvm

rvm get head 

使其工作並重新啓動Textmate。希望有所幫助。

+0

是的,你的正確。這篇文章相當老,從那以後我一直在使用這種方法。 – jspooner 2011-07-16 23:39:21