chruby未根据新终端选项卡上.ruby version中的值更改为正确的ruby版本

chruby未根据新终端选项卡上.ruby version中的值更改为正确的ruby版本,ruby,chruby,Ruby,Chruby,我正在使用source/usr/local/opt/chruby/share/chruby/auto.sh将ruby自动更改为.ruby版本,但不幸的是,这只适用于cd 当我在mac终端中打开一个新选项卡时,它会打开到我在上一个选项卡中所处的同一目录,但自动更改不起作用。我的解决办法是用cd。。然后cd又回来了,这就触发了改变。显然,这很烦人 我尝试在新选项卡中手动调用函数chruby_auto,但没有效果 在这种情况下,有人能提供一个如何更新我的ruby版本的解决方案吗?我更喜欢自动解决方案,

我正在使用source/usr/local/opt/chruby/share/chruby/auto.sh将ruby自动更改为.ruby版本,但不幸的是,这只适用于cd

当我在mac终端中打开一个新选项卡时,它会打开到我在上一个选项卡中所处的同一目录,但自动更改不起作用。我的解决办法是用cd。。然后cd又回来了,这就触发了改变。显然,这很烦人

我尝试在新选项卡中手动调用函数chruby_auto,但没有效果


在这种情况下,有人能提供一个如何更新我的ruby版本的解决方案吗?我更喜欢自动解决方案,但会满足于命令调用

实际上没关系,我在我的.bashrc中按调用顺序追溯到一个问题

不正确:

我发现您必须在默认行之后调用自动行。请注意,默认行也必须位于chruby.sh行之后

正确:


所以我把这个答案留给子孙后代,我想实际上没关系,我把这个问题追溯到我的.bashrc中这些调用的顺序

不正确:

我发现您必须在默认行之后调用自动行。请注意,默认行也必须位于chruby.sh行之后

正确:


所以我想把这个答案留给子孙后代吧,除非我误解了你的问题,否则听起来你想要一个~/.ruby版本的文件,而不是你项目中的.ruby版本的文件,这样,当打开新的终端窗口时,您可以确定默认情况下要使用的Ruby版本。如果存在project.Ruby版本文件,则该值将被其覆盖。例如,在my ~/.bashrc中,我有:


我的~/.ruby版本只包含2.3.1,不需要在~/.bashrc中显式调用chruby。有关更多信息,请参阅。

除非我误解了您的问题,否则听起来您希望项目中的~/.ruby版本文件与.ruby版本文件不同,这样,当打开新的终端窗口时,您可以确定默认情况下要使用的Ruby版本。如果存在project.Ruby版本文件,则该值将被其覆盖。例如,在my ~/.bashrc中,我有:


我的~/.ruby版本只包含2.3.1,不需要在~/.bashrc中显式调用chruby。有关更多信息,请参阅。

否,似乎有一种情况是自动切换不起作用,但实际上是,它只是按照我的bashrc中的事情顺序被撤消。否,似乎有一种情况是自动切换不起作用,但实际上是,它只是按照我的bashrc中的事情顺序被撤消
source /usr/local/opt/chruby/share/chruby/chruby.sh
source /usr/local/opt/chruby/share/chruby/auto.sh
chruby ruby-2.3.0 
source /usr/local/opt/chruby/share/chruby/chruby.sh
chruby ruby-2.3.0 # default order important, if comes after auto.sh, will undo the auto change
source /usr/local/opt/chruby/share/chruby/auto.sh
if [[ -e /usr/local/share/chruby ]]; then
  # Load chruby
  source /usr/local/share/chruby/chruby.sh
  # Allow auto-switching of Ruby version when
  # directory has a .ruby-version file
  source /usr/local/share/chruby/auto.sh
fi