First Look at Zsh
I had heard about Zsh before: I thought it had many good things going for itself. But… is it enough to switch shells?!
I spent years reading about, studying, often writing about Bash. I didn’t feel like Bash was holding me back. 😐
When Apple announced (2019) that Catalina would use Zsh as the default login shell… I thought it might be time to, at least, do some due diligence on Zsh.
It Starts with a Book
On most systems, you can type zsh
and get started … but that doesn’t mean
you’re done. Few things will make you feel as incompetent as switching tools
unprepared: the jump into the unknown, the loss of muscle memory, all the
memorized trivia…
How does one get started with a new shell? Maybe reading the manual? In my case, I had heard good things about From Bash to Z Shell.
It’s a “serious” book (472 pages!) and the beginning is basic (“what is a shell?”), but it ends up covering both Bash and Zsh, with a bias for Zsh.
Most entertaining book I’ve ever read? No… but I think it did a fair job at building a solid foundation.
Oh my Config…
It’s hard to talk about Zsh without talking about Oh My Zsh…
Personally, I decided not to go that route. I have a strong dislike for the don’t-worry-about-it and everything-you-could-possibly-want approach to software customization. I’ve seen it many times in the vim community, there’s a big difference between:
- I’m learning vim…
- I’m learning vim, using someone else’s config, and I installed 25 plugins…
I prefer the bottom-up approach to customization, and that’s what I decided to do.
(maybe I’ll give oh-my-zsh a try at some point, but I’m happy now)
Config-wise, here’s what I did:
- I started with nothing… a pretty barebone but “fair” experience
- I added a few tidbits that I picked up while reading the book
- I ported, over MANY days, most of the functionality I had built up over the years in my Bash dotfiles
- over the following weeks, I kept an eye for weird (or different) behavior that I might have to tweak
Here is the final result, if you’re curious. All in all, it amounted to a ton of Googling 😄
My impressions, so far
Zsh is an excellent shell, and I would gladly recommend it as a first shell to someone starting out.
For someone who’s already comfortable with Bash… my recommendations would be more “mixed”. It doesn’t seem clear, especially with the time I spent reading the book and customizing, that “it’s worth it”.
In fact, maybe it’s worth “skipping” Zsh and going directly to fish? That’s probably something I’ll try soon (and report back).