I can't encourage people enough to actually set up their zsh manually instead of running a configuration framework.
I spent a few hours on this about a year back and went from over 2s to about 0.15s for a full run of an interactive login shell (`time zsh -l -i -c 'echo "test"'`). No functionality lost, at least none that I actually used and cared about.
Definitely one of the best quality of life improvements I've made to my setup in recent years.
No one has yet implied that it's irrelevant because it's "old".
However, my view is that we are generally chronological beings at heart, and knowing the year that something was posted (if it wasn't the current year) is a useful to aid in determining whether we may have seen it before or whether it may be particularly relevant to our interests.
My biggest issue with fish is that it has no way of letting me kludge the last command like bash does. I have muscle memory for bash shorthands like !$ For last word of the last command I executed or !! For the whole line.
It still catches me out with its sub shells too sometimes. ( () is equiv to $() in bash )
Also. No control+R
Otherwise I think it's a beautiful shell and I keep using it.
I don't think the env thing is that big of a problem with Fish. For me, the most annoying thing is that it doesn't interoperate well with programs that output POSIX shell strings that you are expected to eval. One particularly annoying example is pkg-config.
I tried fish for a while some years ago, and left it when I noticed that its pipes were fake. Second command in a pipeline couldn't read any input until first command finished running. That made it useless for things like `strace ... | grep ...`. Trying it now, it seems they've fixed that.
I remember that I was interested in it for its multiline command formatting and history. Since then, though, I've learned that zsh also has support for multiline command history, and its vi keybindings support multiline editing for a single command. It's like every command line is a little multiline vi buffer. For this reason, I've chosen my prompt so that the command starts at the first column.
Been a fan of fish mostly for its typeahead autocompletion. I do miss that it doesn't have some of the Bash features others have mentioned, but it's a feature I haven't been able to replicate in other shells yet.
I spent a few hours on this about a year back and went from over 2s to about 0.15s for a full run of an interactive login shell (`time zsh -l -i -c 'echo "test"'`). No functionality lost, at least none that I actually used and cared about.
Definitely one of the best quality of life improvements I've made to my setup in recent years.