I gave up on Zsh

Ok, so everyone and their grandmother appears to be using Zsh and I was starting to wonder what was wrong with me. Why was I still using Bash? So I grabbed Oh-My-Zsh (which was pretty cool, BTW) and dove in… but here’s the problem – I didn’t have time to dive in.

I’m sure that, had I days to dedicate to getting Zsh working, that I would probably find the “right” way to use it, and make myself happy. But, given that I just wanted to start using it and figure things out later… well, it absolutely f’ing sucked! I got no benefit from this approach and a lot of pain. Here’s why it sucked:

  • In bash, if I type — grep thing.*other myfile.txt — and — thing.*other — doesn’t glob, do you know what I get? That’s right, I get — thing.*other. With Zsh, I get an error.
  • Same thing for — sbt ~test. Blurgh!
  • I like a two line status. It keeps all of that long path information, git stuff, and whatnot on a line by itself, and then gives me a whole fresh line for writing commands. I get this in Bash, and I get this in Zsh. Difference? Every time I hit — <ESC> k — in Zsh, it would erase the line above it – a rendering bug. You know what? I really needed to read that line, thanks very much.
  • The directory stacking is pretty terrible, which is insane considering that “cd” is the command you probably run more than any other in the shell, by far.

There were some other annoying bits too, but not too big of a deal to mention.

The bottom line here, is that before I would be able to successfully use Zsh, I would have to figure out how to get it to stay the hell out of my way. Said another way: If there’s a feature of Zsh that I only use 0.5% of the time, then it should not be defaulted to be on 100% of the time such that 99.5% of the time I have to protect myself from it.

I know, I know… I didn’t give it a chance. Very true. What I was expecting was that I could use it and access features when I was willing to head down that path, but what I found was that I spent nearly all my time working around annoyances just to get things done.

5 comments on this post.
  1. brh:

    I really think that starting out with (or, using at all) Oh-My-Zsh adds a lot more complication than simplification to zsh. It makes things rather overwhelming right from the start. Going through the default zshrc config process and choosing basic options gets a user started in a fairly familiar place. Using compatibility options is a fine way to ease in. Granted, none of this matters if you’re satisfied with bash anyway.

    Multiline prompt support is weird in zsh; the solution is to print your upper line inside the precmd function. AFAIK there is no good way to do a multiline right prompt. But then, (again AFAIK) there’s no good way to do a right prompt period in bash.

    Curious how you consider the directory stack to be worse than bash? I’ve personally found very little difference save for having more control over the stack(s) in zsh.

  2. Derek Wyatt:

    I don’t think it was really that it was “worse” than bash – I think it was that it’s no better than bash. I’ve since moved to ZSH and ported over my BASH stuff to improve it, but the only reason I’m staying is because I’m there now :) ZSH doesn’t really seem to have much for me that makes it a “must have” over BASH.

  3. Ryan:

    ZSH is no better than BASH, but it’s *much* more complex, *much* less widely used and standardised on and the default extra features are just crap.

    The BASH defaults are sane. The ZSH defaults are just desperately trying to wow BASH users with look-at-me features, which in reality are just annoying as hell and not useful.

    Fuck ZSH. It’s not worth the effort or the added complexity.

  4. Zoltan:

    I haven’t found the multiline prompt issue in zsh’s bug database. Is it true that it’s not raised yet as a bug report?

  5. Derek Wyatt:

    It went away with some setting that I put in, but I don’t know which one :)

Leave a comment