Hacker News new | ask | show | jobs
by kbd 1941 days ago
Folks make a big deal about everything Fish gives you out of the box, but for someone who already has Zsh well–configured (eg. syntax highlighting, autosuggestions, fzf), can someone sell me on things I might be missing out on from Fish?
2 comments

Not having to fight against POSIX. Arrays are first-class, strings don't split when you don't want them to, things that could be builtins generally are builtins instead of inscrutable syntax.

Command output is split on newlines, which turns out to work really well with most Unix tools and only breaks on the most pathological of filenames. The newbie-ism `for f in (ls)` isn't actually harmful in fish.

Autocomplete definitions are very straightforward and declarative, so writing your own is easy. See https://fishshell.com/docs/current/cmds/complete.html#exampl.... zsh's system is more intimidating. (I even contributed completions for a few commands to this release of fish.)

Assuming zsh is already doing everything you want the biggest thing you're missing is speed.
"Speed" seems a vague claim. What are you referring to? Startup time, interactive use, scripting?
WTF are you doing where shell "speed" is the bottleneck? How does it happen that your shell starts "slow". This post has lots of speed comments. I don't get it. Are bash pipes slower than others? Do folk have a shell that takes longer than 250ms to start?
Not OP but fish's fuzzy autocomplete is snappy, especially on low-end hardware even when I mistype a lot, where zsh will often just freeze completely, for me at least.
I tried out many of the popular shells (bash, zsh, fish, etc) many years ago when my daily driver was an older thinkpad, and some of the startup times were painfully slow for me. It definitely drove me toward the more minimal shells like ksh and rc. On newer hardware it hasn't been noticeable, but it's real.