2011-07-09 103 views
12

我最近看到了燈光,並轉換到了Zsh。我自然使用了Oh My Zsh來配置它,因爲我很不喜歡。所以,有幾個主題,其中包括rvm-prompt,這是我的問題開始。每次我加載Zsh我必須rvm reload否則rvm-prompt不解決(zsh: command not found: rvm-prompt)。請注意,它在我重新加載後解決問題。另外,並且,當我轉到一個擁有自己的.rvmrc(其他gemset)的目錄,然後我走出它時,會出現同樣的問題;我不得不再次重新加載Zsh。 我有RVM在$PATH集。我有Zsh&RVM困境(rvm-prompt無法解析)

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

在我.zshrc

我使用的是RVM插件。任何人都知道什麼?不是真正的表演塞,只是很煩人。

回答

4

不知道這會解決你的問題,但它值得一試無論如何。

在最近更新到rvm之後,我遇到了與oh-my-zsh類似的問題。我卸載了rvm和oh-my-zsh,然後重新安裝(首先安裝oh-my-zsh,因爲如果您先安裝rvm,它會將一串或rvm路徑複製到您的~/.zshrc中)。

事情工作好一點,除了rvm-prompt不適用於新的終端窗口。我結束了堅持在我的~/.zshrc和事情結束了以下工作現在罰款:

rvm use default 

我覺得一些有某種雞還是先有蛋的問題與RVM的加載順序的哦,我的 - zsh與最新版本的rvm。不知道應該責怪哪一個,但我希望它能被其中的一個或兩個人解決!

+0

做到這一點的首選方法是通過移動到'.zshenv'由@johnernaut – mpapis

1

這個問題實際上是在rvm的zsh-FAQ中解決的。

http://beginrescueend.com/integration/zsh/

加入 __rvm_project_rvmrc 您.zshrc解決了這個問題。

我添加這個作爲答案,因爲我剛剛發現這個問題,同時上面的解決方案只是將ruby版本設置爲rvm的默認值,並且不適用於gemsets。

+3

的建議這並不爲我工作。按照上面的答案使用'.zshenv'確實。 – nmott

+1

沒有爲我工作 – raviolicode

19

我有同樣的問題,直到我把[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"放入.zshenv文件而不是.zshrc文件。

+1

這導致我在我的提示的rvm部分看到,即使'rvm current'報告了其他情況。如下所述,更好的解決方案是使用別名。 – jasongarber

18

爲rvm-prompt創建別名。這是最確定的答案。安排在.zshrc文件的東西在這個順序:

  1. alias rvm-prompt=$HOME/.rvm/bin/rvm-prompt
  2. source $ZSH/oh-my-zsh.sh
  3. [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

如果RVM之前哦,我-的zsh(OMZ)的負荷,which rvm-prompt就會失敗,所以你在您的提示符下(如果您的主題支持),即使它稍後在RVM加載後仍在您的路徑中,也不會看到RVM。

如果RVM在OMZ之前加載,您可能會得到zsh: command not found: rvm-prompt

將rvm-prompt別名到它的實際位置似乎可以解決問題,無論RVM和OMZ的加載順序如何。我仍然推薦在底部安裝RVM。

把RVM加載到.zshenv如上面所建議的將加載RVM中的iTerm 2兩次(沒有,它不是仍然在我.zshrc)並會導致在顯示「系統」,即使rvm-promptrvm current顯示特定的提示紅寶石版本和gemset。

+1

好的,jasongarber。它看起來像最新的rvm試圖將〜/ .rvm/bin添加到路徑中來做到這一點,但它發生的很晚。至於你的提示,我把採購移到了文件的底部。 https://gist.github.com/1973583 –

+0

非常好,趕上你自己!你的方式很好,沒有別名。 – jasongarber

+0

這一款適合我。謝謝! – kgpdeveloper

1

最簡單的方法來擺脫它是安裝RVM(Ruby的虛擬經理)。然後你會真正欣賞這個主題。之後

curl -sSL https://get.rvm.io | bash 

到問題解決..