The biggest amazing default is to be able to start typing and have it be searching the history. When I'm ready to start work on a project I can start typing part of the project's name, say "bar", and fish will come up with a history item for "cd /customers/foocorp/barproject".
I still do my "scripting" shell work in bash though, since it runs everywhere.
Parent's comment is misleading, then. As someone who already has a pretty solid grasp of Bash, when I peeked at Fish it looked like there was nothing that it would gain me -- though I understand that the preconfigured shell can be useful for people who don't have the time to learn and tweak it.
If you're a die-hard bash user, autosuggestions are the feature most likely to pique your interest and make the command line more pleasant.
Probably (although I use a zsh distribution to get a sane setup). I definitely appreciate the idea of sane defaults, rather than forcing the user to set everything up properly from scratch. And your autosuggestions do look pretty swell.
> Customizations (prompt, colors, etc) can be done with a web UI or a nice command line interface, and not arcane syntax (PS1=...)
You ship a web server in the shell? Is it always running, or does the user have to do something to start it up?
I kinda like setting variables, to be honest. But I'm old-fashioned.
One thing I really wish y'all'd done was use more standard shell syntax. It's really painful working in an office where someone uses fish and lets fish-isms creep into shared command libraries.
> Is it always running, or does the user have to do something to start it up?
Looks like the latter: https://fishshell.com/docs/current/commands.html#fish_config
Here's where I think fish fits in. The main goals of fish are:
1. Thoughtful UI that just works
2. Sane scripting
zsh does more than fish, and we're happy to let it. The tradeoff is that zsh requires substantial configuration to realize that power - and once you get into the weeds, you will learn which options are incompatible with each other. zsh has 21 options controlling history, and fish has none, but you'll probably be happier with fish's defaults.
fish has a smaller feature set, but that feature set just works out of the box: tab completions, syntax highlighting, autosuggestions, etc. Customizations (prompt, colors, etc) can be done with a web UI or a nice command line interface, and not arcane syntax (PS1=...)
The hope is you can be more productive in your shell without needing to invest tons of time configuring and learning it.