Skip to content

Switching to ZSH

Everything has already been said and documented about ZSH.

I made the switch two days ago and only regret I didn't switch before.

I have checked ZSH and Oh my zsh back and forth for the past two years, but never committing to it.

I was thinking it was too much trouble learning something new, for too little benefits.

Oh boy I was wrong.

First of all, it's 99% like bash but you get power user features making you even more efficient at the CLI.

With that in mind, no worries of forgetting bash because you moved to ZSH. When you will go back to bash (on some remote server without ZSH for example), you will just have to type some commands fully while ZSH probably autocompletes them.

Then, you really need to have a look at Oh my zsh. Oh My Zsh is an open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes.

All is a matter of taste, but I went with powerlevel9k theme and I'm very pleased with it.

I stick to my favorite Terminus font (I don't like antialiased fonts for console) and won't get crazy about getting pretty icons everywhere.

The z plugin by itself is just amazing and I adopted it within the hour. Check it out https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/z.

Then, the shell is case insensitive by default. It can also do expansions like cd /us/lo/bi turning to /usr/local/bin with a simple tab key press.

Globbing is amazing. Just do wc -l **/*.md to start counting lines of all markdown files in the directory and all sub-dirs.

The zsh auto suggestion plugin and syntax highlighting are worth a try as well.

After two days, I'm under the charm. Zsh is as fast as bash (despite all the added features), provides useful plugins, nice status bar and many other features.

Edit: it is reported that ZSH produces garbage in vim when using statusline: https://github.com/fatih/vim-go/issues/71. I disabled statusline meanwhile.

Score: 10/10. Highly recommended.