Горе Zsh & RVM (rvm-prompt не разрешается) - PullRequest
14 голосов
/ 09 июля 2011

Я недавно увидел свет и переключился на Zsh.Я, естественно, использовал Oh My Zsh для его настройки, так как я нубиш.Итак, есть несколько тем с включенным rvm-prompt, и вот здесь начались мои проблемы.Каждый раз, когда я загружаю Zsh, я должен rvm reload, иначе rvm-prompt не разрешается (zsh: command not found: rvm-prompt).Обратите внимание, что после перезагрузки все решается нормально.Кроме того, в строке, когда я иду в каталог, который имеет свой собственный .rvmrc (другой набор гемов), и затем я выхожу из него, возникает та же проблема;Мне осталось перезагрузить Zsh снова.У меня есть RVM в наборе $PATH.У меня

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

в моем .zshrc

Я использую плагин RVM.Кто-нибудь знает, что случилось?Не совсем шоу-стоппер, просто раздражает.

Ответы [ 6 ]

21 голосов
/ 12 февраля 2012

Создайте псевдоним для 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"

Если oh-my-zsh (OMZ) загружается до RVM, which rvm-prompt молча завершается сбоем, поэтому вы не увидите RVM в вашем приглашении (если поддерживается вашей темой), даже если он находится на вашем пути позже, после RVM грузы.

Если RVM загружается до ОМЗ, вы можете получить zsh: command not found: rvm-prompt.

Перенос псевдонима rvm на его фактическое местоположение, похоже, решает проблему, независимо от того, в каком порядке загружены RVM и OMZ. Я бы по-прежнему рекомендовал RVM внизу.

Установка загрузки RVM в .zshenv, как предложено выше, приведет к двойной загрузке RVM в iTerm 2 (и нет, это не было в моем .zshrc) и приведет к отображению подсказки «system», даже если rvm-prompt и rvm current показывал конкретную версию ruby ​​и gemset.

19 голосов
/ 15 декабря 2011

У меня была такая же проблема, пока я не поместил [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" в файл .zshenv вместо файла .zshrc.

4 голосов
/ 13 июля 2011

Не уверен, что это решит ваши проблемы, но в любом случае стоит попробовать.

После недавнего обновления до rvm у меня были похожие проблемы с oh-my-zsh. Я удалил оба rvm и oh-my-zsh, а затем переустановил (сначала установите oh-my-zsh, так как он скопирует пути или пути rvm в ваш ~/.zshrc, если вы сначала установите rvm).

Все работает немного лучше, кроме rvm-prompt не будет работать правильно с новым окном терминала. В конце моего ~/.zshrc я наклеил следующее, и теперь все работает нормально:

rvm use default

Я думаю, что есть проблемы типа "курица и яйцо" с порядком загрузки rvm и oh-my-zsh в последних версиях rvm. Не уверен, кто виноват, но я надеюсь, что это решится одним из них или обоими!

3 голосов
/ 06 ноября 2017

Самый простой способ избавиться от него - установить RVM (Ruby Virtual Manager).Тогда вы действительно оцените тему.

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

После этого проблема решается сама собой.

1 голос
/ 14 декабря 2011

Эта проблема на самом деле решена в zsh-FAQ от rvm.

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

добавление __rvm_project_rvmrc к вашему .zshrc решает проблему.

Я добавляю это как ответ, потому что я только что нашел это, пока гуглил проблемуПриведенное выше решение просто устанавливает версию ruby ​​по умолчанию для rvm и не работает с наборами гемов.

0 голосов
/ 12 сентября 2016

Добавьте следующее в ~ / .zshrc в

alias rvm-prompt=$HOME/.rvm/bin/rvm-prompt

Сохранить

source ~/.zshrc

Ссылка: http://xufei.logdown.com/posts/2012/09/09/zsh-rake-rvm-prompt

...