2011-07-09 9 views
12

Niedawno zobaczyłem światło i przeszedłem na Zsh. Naturalnie użyłem Oh My Zsh do skonfigurowania go, ponieważ jestem noobish. Jest kilka motywów, które zawierają rvm-prompt, a tutaj zaczęły się moje problemy. Za każdym razem, gdy ładuję Zsh, muszę rvm reload, inaczej rvm-prompt nie zostanie rozwiązany (zsh: command not found: rvm-prompt). Zauważ, że rozwiązuje się dobrze po ponownym załadowaniu. Ponadto, gdy idę do katalogu, który ma swój własny .rvmrc (inny zestaw gemsetów), a następnie wyjdę z niego, pojawia się ten sam problem; Pozostaje mi konieczność ponownego załadowania Zsh. Mam zestaw RVM w zestawie $PATH. MamNieszczęścia Zsh i RVM (rvm-prompt nie rozwiązuje)

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

w moim .zshrc

Używam plugin RVM. Ktoś wie, co słychać? Naprawdę nie korek, tylko denerwujący.

Odpowiedz

4

Nie jestem pewien, czy to rozwiąże Twoje problemy, ale mimo to warto spróbować.

Po ostatniej aktualizacji do rvm miałem podobne problemy z oh-my-zsh. Odinstalowałem zarówno rvm, jak i oh-my-zsh, a następnie ponownie je zainstalowałem (najpierw zainstaluj oh-my-zsh, ponieważ skopiuje ścieżki wiązki lub rvm do twojego ~/.zshrc, jeśli najpierw zainstalujesz rvm).

Sprawdziło się trochę lepiej, z tym wyjątkiem, że rvm-prompt nie działałby poprawnie z nowym oknem terminala. I skończyłem przyklejania następujące na koniec moich ~/.zshrc i wszystko działa dobrze teraz:

rvm use default 

myślę, że niektóre istnieje jakiś problem z kurą i jajkiem z zamówieniem obciążenia RVM i oh-my- zsh z najnowszymi wersjami rvm. Nie jestem pewien, co jest winne, ale mam nadzieję, że zostanie rozwiązany przez jednego lub oboje!

+0

najlepszym sposobem na to jest poprzez przeniesienie do '.zshenv' jak sugeruje @johnernaut – mpapis

1

Ten problem jest adresowany w zsh-FAQ rvm.

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

dodanie __rvm_project_rvmrc do swojego .zshrc rozwiązuje ten problem.

Dodaję to jako odpowiedź, ponieważ znalazłem to podczas googlowania problemu, a powyższe rozwiązanie po prostu ustawia wersję ruby ​​na domyślną wartość rvm i nie działa z gemsetami.

+3

ta nie działa dla mnie. Użycie '.zshenv' jak w powyższej odpowiedzi robi. – nmott

+1

Nie działa dla mnie ani – raviolicode

19

Miałem ten sam problem, dopóki nie wstawiłem [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" do pliku .zshenv zamiast pliku .zshrc.

+1

To spowodowało, że widziałem w części rvm mojego wiersza, mimo że "prąd rvm" raportował inaczej. Lepszym rozwiązaniem jest użycie aliasu, jak opisałem poniżej. – jasongarber

18

Utwórz alias do polecenia rvm. To najbardziej pewna odpowiedź. Zorganizować rzeczy w pliku .zshrc w następującej kolejności:

  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"

Jeśli oh-my-zsh (OMZ) ładunki przed RVM, which rvm-prompt nie cicho, więc nie zobaczy RVM w twoim monitorze (jeśli jest obsługiwany przez twój motyw), nawet jeśli jest on w twojej ścieżce później, po załadowaniu RVM.

Jeśli RVM zostanie załadowany przed OMZ, możesz uzyskać zsh: command not found: rvm-prompt.

Wysłanie zachęty rvm do rzeczywistej lokalizacji wydaje się rozwiązać problem, niezależnie od tego, w jakiej kolejności są załadowane RVM i OMZ. W dalszym ciągu zalecałbym RVM na dole.

Umieszczenie ładunku RVM w .zshenv jak zasugerowano powyżej by załadować RVM dwukrotnie iTerm 2 (a nie, to nie był jeszcze w moim .zshrc) i skutkowałoby wierszu wyświetlając „układ”, choć rvm-prompt i rvm current pokazał specyficzny wersja rubinowa i gemset.

+1

Dobry połów, jasongarber. Wygląda na to, że najnowszy rvm próbuje dodać ~/.rvm/bin do ścieżki, aby to zrobić, ale dzieje się tak późno. Jeśli chodzi o twoją podpowiedź, przesunąłem źródło w dół pliku. https://gist.github.com/1973583 –

+0

Bardzo ładnie złap się! Twoja droga działa świetnie bez aliasu. – jasongarber

+0

Ten działał dobrze dla mnie. Dzięki! – kgpdeveloper

1

Najprostszym sposobem, aby się go pozbyć jest zainstalowanie RVM (Ruby wirtualna Menedżer). Wtedy naprawdę doceniłbyś ten temat.

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

Problem rozwiązuje się po tym ..

Powiązane problemy