Over the past couple years Fish has really become my favorite go to shell. At the end of the day I think most people fall into either the bash, fish, or zsh shell camps. The truth is that while many of the zsh fans argue that any interesting feature eventually makes it into the shell, the honest truth is that all that extensibility actually works against it. Most definitely bash is fine for most things, but fish is clearly superior when it comes to just having an “out-of-the-box” experience. This especially includes the advanced type of completion it offers. Yes you can get anything you want in zsh, just keep it updated and modify it, but that just gets out of hand at times.
As for fish, it suffers from this problem as well when you “want to go off the reservation”. However, thankfully, that’s largely unnecessary for the basic “goodies”. However, one thing I do like is how you can basically “trade” functionality (under which aliases would fall into this category). The prompt for the shell is no different and so you can just copypasta this into a file and drop into your