10

当我输入which ruby它总是返回ruby: aliased to bundled_ruby

当我尝试which bundled_ruby它返回:

bundled_ruby () {
    _run-with-bundler ruby $@
}

然后我尝试which _run-with-bundler并返回:

_run-with-bundler () {
    if _bundler-installed && _within-bundled-project
    then
        bundle exec $@
    else
        $@
    fi
}

这一切是从哪里来的,我该如何让我which ruby再次工作?

我正在使用 OSX (v10.8.2)、brew、rbenv、ruby-build、zsh

4

2 回答 2

20

它可以来自bundler.oh-my-zsh

它使用魔法来避免bundle exec在以下命令之前输入:annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma

UNBUNDLED_COMMANDS您可以通过在加载oh-my-zsh插件之前在 ~/.zshrc 中定义环境变量来禁用某些命令的这种魔法(参见oh-my-zsh pull request #2195)。

export UNBUNDLED_COMMANDS=ruby
# for a list of commands
export UNBUNDLED_COMMANDS=(ruby irb rake)

或者您可以简单地bundler从您的插件中删除该插件oh-my-zsh

于 2014-01-03T15:28:00.953 回答
6

这是rbenv处理具有多个 gem 版本的多个 ruby​​ 版本的“魔术”的一部分。看看~/.rbenv/shims/ruby,IIRC 脚本是在那里定义的。

如果你想禁用它,只需unalias ruby:这会删除生成的别名。

于 2013-08-22T06:29:13.893 回答