If you are using Mac as development machine,
Terminal.app
must be one of the most used apps. Terminal might be not fancy to begin with, but you can totally make it more elegant and fancy if you follow with me.Oh My Zsh Macos Install
So, in Terminal a new zsh will potentially run all configuration files. For simplicity’s sake, you should use just one file. The common choice is.zshrc. Most tools you can download to configure zsh, such as ‘prezto’ or ‘oh-my-zsh’, will override or re-configure your.zshrc. You could consider moving your code to.zlogin instead. Jul 05, 2020 This video will help developers/enthusiasts to set up and install 'oh-my-zsh' on a MacBook.This is my first technical cast/vlog. This recording. A protip by ducknorris about shell, zsh, mac os x, and iterm2. # Look in /.oh-my-zsh/themes/ # Optionally, if you set this to 'random', it'll load a.
We will be doing these for our Terminal
- Install Terminal Profile: Customize Terminal Color
- Install
oh-my-zsh
: Use powerfulzsh
for Terminal, instead ofshell
- Install
oh-my-zsh
themes: Beautifyoh-my-zsh
- Instal
oh-my-zsh
must-have plugins: Get more advanced and convenient features for Terminal
Preparation
Recommend to install
homebrew
first:Install zsh if you are on macOS version prior to Catalina:
Install Terminal Profile
- Go to osx-terminal-theme and download your favorite theme in
scheme
folder - Double click the theme file to install and set as default
Feel free to use my Terminal Profile if you would like to try: https://gist.github.com/tonyxu-io/6b845cb1a53622eb4f1ce4063365e427
Install oh-my-zsh
Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout…
Install
oh-my-zsh
:Install oh-my-zsh theme
Built-in themes
oh-my-zsh
provides some built-in themes which you can immediately use:- Find your favorite theme in built-in themes list: https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
- Set
ZSH_THEME
to your favorite theme name in~/.zshrc
- Activate setting by
source ~/.zshrc
Third-party themes
There are more third-party themes developped for
oh-my-zsh
, find and install them here:Install oh-my-zsh must-have plugins
oh-my-zsh
has many powerful plugins, below are some must-have plugins that will boost your productivity.Sample config:
git
Built-in,use abbreviations for git commands, e.g.
gaa
->git add --all
, use alias | grep git
to get all abbreviations commandsActivate: Add to
~/.zshrc
plugins sectionextract
Built-in, no need to use complicated
tar
to extract zip filesActivate: Add to
~/.zshrc
plugins sectionautojump
Use
j
to quickly jump to a folder, e.g. j Downloads
->cd ~/Downloads
Install:
brew install autojump
Follow instructions and add below line in
~/.zshrc
:zsh-syntax-highlighting
Commands syntax highlight plugin
Install:
brew install zsh-syntax-highlighting
Add
zsh-syntax-highlighting
to ~/.zshtc
plugins sectionOther install guides: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
zsh-autosuggestions
Auto complete commands by typing →
Install:
brew install zsh-autosuggestions
Follow instructions and add below line in
~/.zshrc
:My own ~/.zshrc config
by rajaraodv
In this blog I’ll cover installing ITerm2, ZSH shell, “oh my ZSH”, Themes, ITerm2 color schemes, “oh my ZSH” plugins and enable “ligature” support to help create a beautiful and powerful Terminal.
If you want to just make your regular Bash Terminal powerful, take a look at my previous blog: “Jazz Up Your Bash Terminal”. But ZSH explained in this blog is more powerful stuff.
Summary:
We’ll be covering a lot of things. This may be confusing, so here is the summary of what we will be doing.
- Install ITerm2 — This is a better alternative to the default Terminal
- Install latest ZSH shell — This is more powerful than the regular bash shell. We will switch ITerm2 to use ZSH shell.
- Install “Oh My ZSH “— This is a CLI tool to easily configure ZSH and add themes and plugins to ZSH
- Add two types of Themes using “Oh My ZSH” — some themes need extra steps so we will cover both
- Install different ITerm2 Schemes — These are just color schemes for the UI
- Add two different Plugins using “Oh My ZSH” to improve productivity
- Enable “ligature” support so when you write an arrow =>;, it appears like a real arrow →
Step 1— Install ITerm2
A lot of programmers like ITerm2 instead of the default Terminal. It is similar to the Terminal, but has lots of features of its own. It of course can run ZSH, Bash, and other shells inside it.
The following video shows some of the new features of Item 2 (v3).
For this blog we’ll use ITerm2. When I mention “Terminal”, I mean ITerm2. Although the steps are the same for both Terminal or ITerm2.
Step 2— Change Shell To ZSH
The following video shows why ZSH is better than just a bash shell.
Option 1 — Use Mac’s own ZSH:
Mac comes with a ZSH out-of-the-box, so we don’t need to install it. However, sometimes it’s an older version of ZSH. Typically it’s located at /bin/zsh. Popchar 8.3 inch. To use it, all we need to do is to change shell (chsh).
- Open the Terminal (or ITerm2) and type the following command.
2. Enter the password and it will change the shell, upon logout and login.
3. Logout and re-login
4. To test, open the Terminal and type the following, and it should say zsh.
Option 2— Install Homebrew and Install latest ZSH via Homebrew
This option is pretty common among users, because some of the plugins only work with the latest ZSH.
Homebrew, simply said, is a command line installer for all sorts of software. Let’s install that first.
- Install Homebrew by running the following command.
2. If you get Command Line Tools for Xcode error, it means you haven’t installed the CLI tools for Xcode. If you don’t get the error, you can skip this step, because you already have it installed.
XCode Developer CLI tools are used by various apps that manipulate core OSX features. So make sure to install the Xcode CLI tools by running the following command.
$ xcode-select —-install
Note: The above command opens up Mac’s installer and installs the XCode Developer CLI tools. If it doesn’t work, try xcode-select -r
to reset.
3. Install ZSH via Homebrew
Run the following command to install ZSH. It gets installed at
/usr/local/bin/zsh
PS: Mac’s default ZSH is at /bin/zsh
4. Use the Homebrew version of ZSH
Run the following command. You will be prompted to enter Mac’s password.
5. Logout and log back in.
6. Test if we are using ZSH and the correct ZSH
Step 3— “Oh My ZSH”
“Oh My ZSH” is a plugin that runs on top of ZSH. It provides default config for ZSH (~/.zhrc file) and also provides themes and more features.
From what I know, most power users who use ZSH also use “Oh My ZSH”.
- Install “Oh My ZSH”
Run the following command to install “oh My ZSH”.
2. Close and quit ITerm2 and reopen it.
It should look something like below. Notice that the prompt has changed and the theme is a bit different — That’s “Oh My ZSH” in action for you.
Step 4— Change Themes And Install Fonts
In this step, we’ll add two different “Oh My ZSH” Themes. “Oh My ZSH” comes with tons of themes. PS: But some Themes need extra steps like installing specific fonts and so on.
To set a Theme, simply open ~/.zshrc file (created by “Oh My ZSH”) and change the theme as shown below.
PS: .zshrc is the config file for ZSH shell. People who don’t use “Oh My ZSH” will have to manually create this file and add any configs themselves. “Oh My ZSH” automatically creates this file if it doesn’t exist and then adds its own set of configs into this file.
Theme 1 — Let’s add a Theme called “Avit”
- Open .zshrc
2. Change the Theme to “Avit”
You can browse all the “Oh My ZSH” Themes here. To change the Theme, simply change the ZSH_THEME value in ~/.zshrc file from robbyrussell to Avit.
3. Update ZSH config
Run the following command to update the config.
4. Change the background color and font size
Open ITerm2 > Preferences > Profiles > Colors and change the background black color to use 20% gray as shown below.
Then open Text > Change Font and change the size to 14pt.
OK, Let’s install a different Theme that needs fonts.
Theme 2 — Installing “agnoster” Oh My ZSH theme
This is a popular theme because it emulates the Powerline Python app that enhances the terminal. The following picture shows how it looks. But this theme also needs us to install Powerline themes.
1. Install Powerline fonts
2. Change the Theme to “agnoster”
3. Quit ITerm2 and reopen it.
4. Set Powerline font
You can set any Powerline patched font you like. All the fonts end with “for Powerline”.
Open
ITerm2 > Preferences > Profiles > Text > Change Font
and set it to something that has “for Powerline”. I’m choosing “Meslo LG DZ for Powerline” font.Note — If you are confused about the fonts and Themes: the Themes are for “Oh My ZSH” and ZSH shell and the fonts are for the Iterm2 itself.
5. All Done
At this point your Terminal should look like below:
Step 5 — Install iTerm2 “color schemes” (ITerm2 Themes)
There are plenty of gorgeous color schemes for iTerm2. These schemes change the foreground color, background color, cursor color, and so on. You can find them at iTerm2-color-schemes Github repo.
Note: These are just color schemes of the ITerm2 UI and don’t deal with the command prompt’s look and feel like “Oh My ZSH”’s themes (other than just changing colors).
Follow these steps to install them.
- Download the iTerm2-color-schemes as a zip file and extract it
- The “Schemes” folder contains all the color scheme files — they end with
.itermcolors
- Open
iTerm2 > Preferences > Profile > Colors > Color Presets > Import
- In the import window, navigate to the “Schemes” folder (from step 2)
- Select all the files so you can import all the color schemes at once
- Simply select whichever color scheme you like.
My favorites are Batman and Argonaut
The Argonaut color scheme looks like below:
Step 6— Install Plugins
Plugins add more functionalities to your workflow. By default “Oh My ZSH” already has the “git” plugin! and that’s why you were able to see all those Git statuses in the prompts in earlier screenshots. Let’s add another one to see how it works.
Note: In this section, we’ll install two different plugins to show how they work.
Plugin 1 — Add Syntax Highlighting Plugin
The Syntax Highlighting plugin adds beautiful colors to the commands you are typing as shown below.
- Clone the zsh-syntax-highlighting plugin’s repo and copy it to the “Oh My ZSH” plugins directory.
2. Activate the plugin in
~/.zshrc
by adding `zsh-syntax-highlighting
to the Plugins section as shown below.3. Re-read zshrc configuration
Plugin 2 — Add ZSH-AutoSuggestion Plugin
This plugin auto suggests any of the previous commands. Pretty handy! To select the completion, simply press → key.
- Install the plugin
PS: ZSH_CUSTOM points to ~/.oh-my-zsh/custom
2. Open
~/.zshrc
and add zsh-autosuggestionsStep 7 — Use Ligature Support
Oh My Zsh For Mac Free
There are various fonts that help make operators like less than, double equals, right arrow, not equals, and so on look beautiful. For example, every time you type: =>, it becomes: →.
To use this, we need fonts that support ligatures. We also need to enable it in ITerm2. FiraCode is one such font. Follow the steps to install and enable ligatures.
- Download the FiraCode repo and extract the zip file (or clone it)
- Open the
dstr > ttf
folder and double click on all the*.ttf
files and select the “Install font” button to install each of the font variations. - Navigate to
ITerm2 | Preferences | Profiles | Text
- Select
Use Ligatures
checkbox - Click on
Change Font
and selectFira Code Regular
font
Summary
We have covered a lot in this blog starting from installing latest ZSH via Homebrew, Oh My ZSH, Plugins, Themes, enable “ligatures” for FiraCode font.
?? Thank you!
If this was useful, please click the clap ? button down below a few times to show your support! ⬇⬇⬇ ??
My Other Posts
ECMAScript 2015+
Terminal Improvements
WWW
Virtual DOM
React Performance
Oh My Zsh For Mac Download
Functional Programming
WebPack
- Webpack & Hot Module Replacement [HMR] (under-the-hood)
Draft.js
React And Redux :
- A Guide For Building A React Redux CRUD App (3-page app)
If this was useful, please click the clap ? button below a few times to show your support! ⬇⬇⬇ ??
Oh My Zsh For Mac Windows 7
If you have questions, please feel free to ask me on Twitter: https://twitter.com/rajaraodv