Search code examples
rubymacosrvmfish

How to make fish shell use an rvm ruby by default


I'm using fish shell 2.10 on Mac OS X 10.9.1. I would like to use a Ruby that I have installed using RVM as the default in my terminals, however I can't seem to make this work.

I've tried rvm use 2.1.0 --default but upon opening a new terminal I still get the following:

> which ruby
/usr/bin/ruby

Running the rvm command causes the ruby to be loaded:

> which ruby
/usr/bin/ruby
> rvm
[...]
> which ruby
/Users/alex/.rvm/rubies/ruby-2.1.0/bin/ruby

But it's annoying to have to do this every time I open a new terminal.


Solution

  • Firstly install rvm fish functions from rvm.io

    curl -L --create-dirs -o ~/.config/fish/functions/rvm.fish https://raw.github.com/lunks/fish-nuggets/master/functions/rvm.fish
    

    You should now be able to use rvm command in fish after reopening terminal.

    Run the following to add the line rvm default to your fish config file.

    echo 'rvm default' >> ~/.config/fish/config.fish
    

    You should now be able to use ruby related binaries and gems after reopening terminal.