I am a fan of fish shell for my coding work. It has a lot of features that bash and zsh lack. However the tools I used to pick my Ruby and Node versions. This saved me typing every time I switch apps. Fortunately it was easy to write my own. I have shared my configuration change on GitHub. Just drop the function files in your ~/.config/fish/functions
directory and then update your config file to source them using the template I linked.