15

我最近看到了光,改用 Zsh。我很自然地使用 Oh My Zsh 来配置它,因为我很菜鸟。所以,有几个主题rvm-prompt包含在内,这就是我的问题开始了。每次我加载 Zsh 时,我都必须这样做rvm reload,否则rvm-prompt无法解决(zsh: command not found: rvm-prompt)。请注意,它在我重新加载后解决得很好。此外,当我进入一个拥有自己的.rvmrc(其他 gemset)的目录然后我退出它时,也会出现同样的问题;我不得不再次重新加载 Zsh。我有 RVM $PATH。我有

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

在我的.zshrc

我正在使用 RVM 插件。有谁知道怎么回事?不是真正的表演停止者,只是烦人。

4

6 回答 6

21

为 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 在 OMZ 之前加载,您可能会得到一个zsh: command not found: rvm-prompt.

将您的 rvm-prompt 别名为其实际位置似乎可以解决问题,无论加载 RVM 和 OMZ 的顺序是什么。我仍然建议在底部使用 RVM。

按照上面的建议将 RVM 加载到.zshenv将在 iTerm 2 中加载 RVM 两次(不,它不在 my 中.zshrc)并且会导致提示显示“系统”,即使它rvm-prompt显示rvm current了特定的 ruby​​ 版本和 gemset。

于 2012-02-11T21:03:59.950 回答
19

在我放入文件而不是文件之前,我遇到了同样[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm".zshenv问题.zshrc

于 2011-12-14T20:04:21.260 回答
4

不确定这是否会解决您的问题,但无论如何都值得一试。

在最近对 rvm 进行更新后,我在使用 oh-my-zsh 时遇到了类似的问题。~/.zshrc我卸载了 rvm 和 oh-my-zsh 然后重新安装(首先安装 oh-my-zsh,因为如果你先安装 rvm ,它会复制一堆或 rvm 路径到你的路径中)。

事情稍微好一点,除了rvm-prompt不能在新的终端窗口上正常工作。我最后坚持了以下内容,~/.zshrc现在一切正常:

rvm use default

我认为在最新版本的 rvm 中,rvm 和 oh-my-zsh 的加载顺序存在某种先有鸡还是先有蛋的问题。不知道应该怪谁,但我希望他们中的一个或两个都能解决!

于 2011-07-13T09:52:25.453 回答
4

摆脱它的最简单方法是安装 RVM(Ruby 虚拟管理器)。然后你会真正欣赏这个主题。

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

之后问题自行解决。。

于 2017-11-06T17:01:16.220 回答
1

这个问题实际上在 rvm 的 zsh-FAQ 中得到了解决。

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

添加 __rvm_project_rvmrc 到您的 .zshrc 可以解决问题。

我将此添加为答案,因为我只是在谷歌搜索问题时发现了这一点,而上述解决方案只是将 ruby​​ 版本设置为 rvm 的默认值,并且不适用于 gemsets。

于 2011-12-14T19:59:15.020 回答
-1

将以下内容添加到 ~/.zshrc 中

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

节省

source ~/.zshrc

参考:http: //xufei.logdown.com/posts/2012/09/09/zsh-rake-rvm-prompt

于 2016-09-12T10:08:33.907 回答