I’ve been using the Fish shell for a while now. Its auto-completion is so much better than Bash. You should try it.
I was looking at the Fish docs this morning and stumbled across this little gem.
Every configuration option in a program is a place where the program is too stupid to figure out for itself what the user really wants, and should be considered a failure of both the program and the programmer who implemented it.
From the Fish Design Documentation.