I've never noticed slowness in OMZ, or really any shell. Or at least, when something feels slow I've always assumed it's the application I'm using, or network congestion, not the shell itself. In what situations do you notice a shell being slow?
Initializing a new session is not instantaneous. Even on my M3 Max it probably takes a couple hundred milliseconds, which is fine.
When I first tried it over a decade back, IIRC on an 11" Air, each new session was probably closer to a couple seconds. I recall there were a couple plugins in particular that were major bottlenecks. Replaced those and got the init speed to about half that but it annoyed me enough to do a clean zsh setup.
It turned slow for a whole after I installed anaconda. If you use conda and your shell is slow, try commenting out the code that loads conda, because it's probably that.
nvm likes to slow things down too. Not as bad as conda, but I did add some code to delay load it.
Do you know how fish would prevent getting slowed down by external scripts in its configuration file? Or does it just not support those scripts perhaps?
It's wild to me how slow conda is. Just in ordinary day to day use, with nothing weird, you sometimes need to wait insane amounts of time, even on incredibly fast systems. Whatever they're doing, it's wrong and bad.
ZSH + Zimfw + Powerlevel10k is probably the fastest "bling"-y shell I managed to put together. Would usually smoke Fish, but I haven't compared recently
I backtracked all the way to Bash. Because I seem to write some amounts of bash scripts, it seems living inside bash is helpful. And it's really not much I feel like I am missing in my use from zsh (or fish). Bash even supports CTRL+R for history with search nowadays.
Yes, I've had to get clear where they differ, but the Fish experience is that much better that it seems worth it.
I've considered replacing more my bash scripts with Fish scripts, but it seems Fish has a slower start start-up time for scripting (not that it matters most of the time) and is more designed for interactive use.
Started using fish, moved back in 3 minutes. Remembered I have this awesome shortcut in Zsh where I type what I need to do, hit cmd+G, and some ChatGPT replaces my input with an example command.
My only issue with fish is that it has had a standing issue[1] for over 12 years where functions and blocks cannot be backgrounded. This makes backgrounding a series of commands in a script nearly impossible.