MacOS, as well as Linux, has its own default shell but Zsh is an awesome alternative because of its capability to customize following my preference. This note was planned to share steps of installation and my selected configurations, in addition to, I will introduce some tools that I have been using to have on my machine recently. The prerequisite of this blog is brew, like apt-get on Ubuntu, to install some packages without lifting fingers much as usual 🍻.

This article was well written, easy to install for MacOS. Next step is to install auto-suggestion which its name tells a fact, supporting to type a command super fast by reminding usage history.

I need something is fancy enough that I can easily recognize commands and associated parameters, syntax-highlight fits my need. Again, brew helps me a lot brew install zsh-syntax-highlighting.

Another cool plugin is zsh-completions but using brew, it seems that I don’t need to bother, explore here

oh-my-zsh is the last addon that I manage to post here. Using this plugin, we have a good way to colorize your terminal through a bunch of themes and a relatively big community. For instance, my favorite shell was captured below

Zsh isn’t applied unless I invoke it hence the last step is to change default shell. This part in MacOS is tricky because it requires detecting the location of Zsh shell then register it to /etc/shells. My command was

sudo echo "$(which zsh)" >> /etc/shells && chsh -s $(which zsh)

Last but not least, I highly recommend to use autoenv since I want to get rid of tedious procedures to change projects’ environmental variable frequently. Furthermore, iterm2 gives a more flexible way to adjust theme and open tabs, split windows expeditiously.

Here is my example configs of oh-my-zsh,


Bryan Nguyễn

Full Stack-Over-Flow Engineer