Fish shell is awesome. But yes, compatibility of sourced functions was a bit of a problem for me. After about a year with it, I switched back to zsh. With a couple plugins I was able to get much of the fish features out it, while keeping the bash compatibility. Here is how I do it.<p>Install oh-my-zsh, and enable I couple plugins. Here's what I have in my config:
plugins=(git history-substring-search zsh-syntax-highlighting docker sudo)<p>In terms of 'enjoying the same setup on all devices', I use dropbox (or owncloud), to sync my config. All I have to do is add this at the bottom of my .zshrc file:
source ~/Dropbox/global.zshrc<p>My last tip about directory jumping, for keedot, is there are methods that will do this for you. I use fasd (<a href="https://github.com/clvv/fasd" rel="nofollow">https://github.com/clvv/fasd</a>) which you can add to your shell and will remember the directories you use often so you dont have to make special cases for specific ones. Check out the 'z' command. It has been amazingly useful.