2009-12-30 45 views

回答

4

這已在0.1.39及更高版本的RVM中解決。當您第一次進入項目目錄樹時,現在的行爲只會生成.rvmrc文件。該目錄樹中的後續cd不會獲取.rvmrc文件。如果你發現自己經常跳入和跳出你的項目目錄樹,我會建議使用多個終端:)

這樣做的一個好處是你現在可以把更耗時的操作,比如確保你所有的寶石都在你的gemset是最新的,在.rvmrc裏保持你的項目是最新的,每次你cd的時候都不用花費你的時間。

要獲得最新版本的RVM,運行: RVM更新--head

一旦被安裝,所有新的炮彈將有改善的行爲 - 對現有的,你不希望關閉彈,你可以運行'rvm reload'來提供新的行爲。

乾杯, 丹尼斯

2

發生這種情況是因爲它會生成一個截獲cd操作的文件。

prompt:$ cat ~/.rvm/scripts/cd 
#!/usr/bin/env bash 

# Source a .rvmrc file in a directory after changing to it, if it exists. 
cd() { 
    builtin cd "[email protected]" 
    if [[ "$rvm_project_rvmrc" != 0 ]] ; then 
    local cwd ; cwd=$(pwd) 
    while : ; do 
     if [[ -z "$cwd" ]] || [[ "$HOME" = "$cwd" ]] || [[ "/" = "$cwd" ]] ; then 
     if [[ "$rvm_project_rvmrc_default" != 0 ]] ; then 
      rvm default 1>/dev/null 2>&1 
     fi 
     break 
     else 
     if [[ -f "$cwd/.rvmrc" ]] ; then 
      source "$cwd/.rvmrc" 
      break 
     else 
      cwd=$(dirname "$cwd") 
     fi 
     fi 
    done 
    fi 
} 

此文件檢查中要更改到目錄中的文件.rvmrc,併成立了一個環境。這樣你可以讓dir運行在ruby 1.8下,而dir B運行在ruby 1.9下。

如果你很樂意取消這種便利,你可以註釋掉這個文件,並用慢目錄切換來完成。

或者,你可以貢獻一個補丁,執行一些緩存,所以這是很快。

+0

這可能是過時的,離開這裏作爲參考 – 2010-07-17 23:16:04

相關問題