Live data from Hacker News

Oh My Zsh adds bloat

rushter.com

231–240 of 304 posts

Re: Oh My Zsh adds bloat

#231
post #159

Earlier quoted context omitted.

Try https://starship.rs then. Starship gives you the same "drop in and go" experience but without the 200ms+ prompt lag. One curl -> one line in your rc file, works on zsh/bash/fish/whatever. Configuration is straightforward and easy imo: https://starship.rs/config/ Give it a spin, I think you won't regret it.

I tried using Starship, and it’s clearly faster than Oh My Zsh, but my issue was that I relied on some useful Oh My Zsh features that I didn’t know how to replicate in Starship. One of these is history filtering - for example, when I type source and press the up arrow, I only see previously run source commands, which makes it easy to find what I’m looking for. I tried to get this working in Starship, but had no luck.

I haven't checked out starship yet, but if I understand what you are using, that is Zle functionality. It's part of OMZs configuration (here: https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/key-bindi...) but doesn't use other OMZ features.

I don't know if starship is still using Zle. If so, this should be possible to configure without OMZ.

Re: Oh My Zsh adds bloat

#232
post #153
post #4

I use oh my zsh for exactly one reason: I can get a good shell experience out of the box and immediately start working on stuff productively, whether it's a new machine, a new remote host or a container. I could spend hours figuring out all those things, bit I'd rather use that time for something more important.

I just use fish shell. Way easier. https://fishshell.com/

Biggest problem being not being able to paste much of the complicated code found online. You can save it and run it via bash command though.

oh my zsh can recreate much of the fish functionality while maintaining good bash interoperability.

Re: Oh My Zsh adds bloat

#233

zsh is still crazy to me. I use bash for everything. I have no idea what I’m missing out on.

I've been using it for the last 6 or 7 years and I can only remember one specific feature I use a lot: "unset HISTFILE" to disable history when I need to run commands with passwords. Other than that, oh-my-zsh with git, systemd, and fzf plugins. Saves a lot of typing. The main selling point for me is how easy it is to setup.

I remember when I switched to zsh solely for SUNKEYBOARDHACK.

Re: Oh My Zsh adds bloat

#234

What workflow involves opening hundreds of shells every day? Like, I've got a half dozen shells open at any given time, and sometimes I gotta refresh or reboot, but even on my worst day in looking at two dozen. How do you get to hundreds?

I use a lot of short-lived terminals. I have zsh+foot configured so that ctrl+shift+n opens a new terminal with the same current directory, so when using Vim, that's as fast as putting Vim in background, but I can tile both windows easily.

I never have more than a one or two dozen terminals at a time, but I definitely open hundred of short-lived ones.

Re: Oh My Zsh adds bloat

#235
Oh My Zsh adds bloat but sets sensible default settings compared to vanilla zsh. I tried using zsh without OMZ and I realized how many things are in OMZ which I took for granted, especially keybindings.

~150ms with minimal setup is good enough for me, although I would prefer <50ms.

Re: Oh My Zsh adds bloat

#236

Earlier quoted context omitted.

The problem is that I forgot (if I ever knew) bash. I can write fish, scripting or interactively on my shell without thinking too hard about the syntax, but when scripting in bash I require an example or using my snippets to be sure I'm not shooting myself on the foot or writing something that bash will reject right away.

The trick is to use "shellcheck" on your bash scripts, it's an overly anal linter that'll keep you sharp, and it's 2026, everyone can script bash with AI :) But yeah the syntax with [[, if fi, while stmt; do; done, "$@", case esac, "${!VAR}" and others makes me long for the day fish shell gets "euo pipefail" mode so I can stop writing bash or || true :)

I think the last time that errexit and pipefail were brought up to the fish devs, we were treated instead to an essay about how errexit is a total hack in bash, how it has all kinds of places where it doesn't work as expected, how it's special-cased away for some constructs, etc. None of which is wrong, but it's still a whole lot better than the nothing that we have with fish now.

So we still have this inflection point where scripts eventually have to graduate into a "real" language, and while those languages give us proper data types and structures on one hand, they take away conveniences like pipes with the other. It's 2026, and we managed to crack artificial freakin' intelligence before we got a decently evolved shell into the mainstream.

Re: Oh My Zsh adds bloat

#237
I tries oh my zsh whil switching to it from fish ("the we don't believe in configuration" shell). I thought it would be great with all the popularity it has but 90 percent of the plug-ins are alias definitions which I certainly won't memorize somebody else's. Just found a few plugins I like for the fish functionality I liked. Spent some time configuring it asking for help on the irc channel for zsh when needed. Great people. Zsh is awesome. No plugin manager for me though. Thanks.

Re: Oh My Zsh adds bloat

#238
post #219

Earlier quoted context omitted.

For me it’s always been an inability to “copy this command from stackoverflow” (or in the modern day, it’ll be copy this from ChatGPT) into your shell. Maybe it’s better now, but the last time I seriously gave fish a chance was 2014. Also one of may main use case is documenting things other developers can do to make their life easier. There are handful of things where zsh behaves differently than bash. And while thos…

I confess I don't really get this. Fish and Bash are different languages in the same way that Ruby and Perl are different languages. And if I want to run a Perl script, I don't try to run it in a Ruby interpreter, and I don't get grumpy at Ruby for not being source-compatible with Perl. Which is to say, if you need to run a Bash script, run it via `bash foo.sh` rather than `./foo.sh`. There's no need to limit yoursel…

There's nothing even preventing the second form from working either. Just put the right shebang at the top of the script and it'll run through that interpreter. I've been on fish for a decade, but still write all my shell scripts in Bash. It's never been an issue.

Re: Oh My Zsh adds bloat

#239

What workflow involves opening hundreds of shells every day? Like, I've got a half dozen shells open at any given time, and sometimes I gotta refresh or reboot, but even on my worst day in looking at two dozen. How do you get to hundreds?

I use a lot of short-lived terminals. I have zsh+foot configured so that ctrl+shift+n opens a new terminal with the same current directory, so when using Vim, that's as fast as putting Vim in background, but I can tile both windows easily. I never have more than a one or two dozen terminals at a time, but I definitely open hundred of short-lived ones.

Why? You've said you do but not why you do? Why not leave a terminal open?

Re: Oh My Zsh adds bloat

#240
post #159

Earlier quoted context omitted.

I tried using Starship, and it’s clearly faster than Oh My Zsh, but my issue was that I relied on some useful Oh My Zsh features that I didn’t know how to replicate in Starship. One of these is history filtering - for example, when I type source and press the up arrow, I only see previously run source commands, which makes it easy to find what I’m looking for. I tried to get this working in Starship, but had no luck.

Control r. This is a zsh feature not a starship/oh my zsh feature

I think that's just a standard readline functionality. It's available on bash, out of the box.
Post reply on HN