Zsh
RVM 需要
- 使用可能为空的通配符(无匹配项)。如果您遇到通配符问题,请尝试在您的 zsh 配置文件中设置 'setopt nullglob'。
- 通过运算符 =~ 实现的 shell 正则表达式支持首次出现在 4.3.5 版本中(它是在 zsh-workers-23375. 中添加的)。
如何判断我的 zsh 版本是否支持 =~ ?
$ foo=baaaar; [[ $foo =~ ba*r ]] && echo "Your shell supports the =~ regex operator." || echo "Your shell does not support the =~ regex operator." Your shell supports the =~ regex operator. $ zsh --version zsh 4.3.5
$ foo=baaaar; [[ $foo =~ ba*r ]] && echo "Your shell supports the =~ regex operator." || echo "I like sheep, they are soft and fluffy..." zsh: condition expected: =~ $ zsh --version zsh 4.3.4
如何升级我的 zsh 版本?
version="4.3.10" ; mkdir -p ~/.src && cd ~/.src && \curl -O -L --create-dirs -C - http://downloads.sourceforge.net/project/zsh/zsh-dev/$version/zsh-$version.tar.bz2?use_mirror=voxel && tar jxf zsh-$version.tar.bz2* && cd zsh-$version && ./configure --prefix=/ && make && sudo make install
如果您使用的是 zsh(可能与 oh-my-zsh 一起使用),并且您的提示符将当前目录显示为 "~rvm_rvmrc_cwd",则在源代码 rvm 之前将以下内容添加到您的 shell 文件中
unsetopt auto_name_dirs
如果您使用的是 oh-my-zsh,并且您看到类似以下错误
pwd:4: too many arguments
这是由别名引起的,并且由于使用 '.' 运算符而不是 'source' 对脚本进行 sh 风格的源代码处理。别名如下所示
# .oh-my-zsh/lib/aliases.zsh alias .='pwd'
为了避免这种情况,请删除/注释别名,或者转义 '.' 以绕过别名,如下所示
\. /file/being/sourced
最新的 RVM HEAD 正确地转义了源代码 '.',因此这应该不再是一个问题。如果您看到与 RVM 脚本相关的此问题,请更新 (rvm get head)。
zsh + iTerm
打开 iTerm 偏好设置 ⌘,
导航到偏好设置
如果没有 ZSH 的配置文件,请创建一个。
将命令:设置为 登录 shell
重新加载 iTerm
如果您在 iTerm 上仍然收到 rvm 不是函数 错误,请尝试
rvm get stable --auto-dotfiles
zsh + oh my zsh
如果您想使用 oh my zsh,请确保不要使用 bundler 包。如果 rvm 应该为您处理所有事情,那么它也会为您完成这些操作。