I love fish, and have been using it as my shell for over 10 years, it's pretty much the first thing I install on a new system.<p>I usually heavily tweak the settings of the applications I use, make my own custom themes etc, but the defaults of fish are so good that I hardly changed anything.<p>I only installed 3 plugins (z,fzf,and virtualfish) and that's it, it's super productive.<p>Completion from history, persistently setting enviroment variables, defining functions, the syntax, everything is much more ergonomic and sane than in bash.<p>I'm sure you can tweak zsh or even bash to achieve something similar, but why bother?<p>Also, i don't mind the incompatibility with bash: the fish language is much more sane, and you can easily use bash if needed.