- Zsh Autosuggestions Not Working
- Zsh Autosuggestions
- Zsh Autosuggestions Color
- Install Zsh Autosuggestions
- Zsh Autosuggestions Zsh Syntax Highlighting
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.
- Jul 30, 2019 I also found a very simple theme that only shows me what I need, similar to my previous zsh theme. Autosuggestion This is the main reason I moved to fish. I originally was using the zsh-autosuggestions which is 'Fish-like autosuggestions for zsh'. This is what drew me to fish, this is by far my most used feature.
- Fish-style Autosuggestion in Zsh? Ask Question Asked 7 years, 1 month ago. Active 2 years, 8 months ago. Viewed 10k times 27. Is there a way.
Installs (30 days) zsh-autosuggestions: 3,496: Installs on Request (30 days) zsh-autosuggestions: 3,490: Build Errors (30 days) zsh-autosuggestions: 0: Installs (90 days).
- 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. 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.
Alienware m11x windows 10 drivers. 3. Update ZSH config
Zsh Autosuggestions Not Working
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.![Zsh Zsh](https://cdn-images-1.medium.com/max/2400/1*f_RqoUuzWvcVhATPzr2i7A.png)
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
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. Maxim dl pro suite keygen download. 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
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! ⬇⬇⬇ ??
If you have questions, please feel free to ask me on Twitter: https://twitter.com/rajaraodv
This tutorial shows how to install zsh and configure 'Oh my zsh' framework on the Linux machine. Z shell (Zsh) is one of the most powerful shell interpreters which is an extended version of bash, tcsh, and ksh. It is a very popular command-line productivity tool for web developer’s workflow.
Some of the prominent features are:
- Better tab completion
- Easy directory navigation
- Supports lots of Themes and Plugins
- Syntax highlighting
- Auto completion
- Interactive configuration
- Color customization
Install ZSH on Linux
By default, Ubuntu and Debian distros do not have zsh. To install zsh on ubuntu 20.04 and Debian 10, run:
On CentOS 8:
To verify the zsh installation:
From the output you can see, zsh has been successfully installed in
/usr/bin/zsh
.Change the current shell
First, check what shell you are currently running on by the following echo command:
or
The above output shows the currently using shell is 'bash’. To change the default shell, you have to run the following chsh command:
Logout from the current session, now when you log in to terminal you will have Zsh shell instead of default bash.
Note: On CentOS 8 install 'util-linux-user' package to have chsh:
or
Install 'Oh my zsh' Framework
Oh My Zsh is an open-source framework that runs on top of Zsh. It comes with lots of features, themes, and plugins.
Firstly, you have to install wget and git for downloading the necessary installer tools:
On Ubuntu:
On CentOS:
Then, download the Oh My Zsh installation script, run:
Zsh Autosuggestions
Output:
Zsh Autosuggestions Color
The installation folder is ‘~/.oh-my-zsh’, run ls command to list its contents:
Next, you have to create a configuration file for the zsh shell. You can copy the configuration template from ‘~/.oh-my-zsh’ folder to your home directory:
Now on running ls command, you will notice a new look.
How to Change the theme
By default, Oh-my-zsh uses 'robbyrussell' theme. You can find that by opening the
.zshrc
file:Install Zsh Autosuggestions
There are many other themes available and in
~/.oh-my-zsh/themes/
directory.To change the default theme, edit the
.zshr
c file and change the default theme.For example to change the theme to 'kiwi' update as shown:
Then, apply the change by running:
$ source .zshrc
How to Enable plugins
There are many plugins offered by Oh-my-zsh. You can list all of them in
~/.oh-my-zsh/plugins
directory.In order to enable plugins, edit
.zshrc
file and add the corresponding plugins to the ‘plugins’ line.For example:
Configure syntax highlight on Zsh
If you want to enable the syntax highlight on Zsh shell, clone the zsh-syntax-hightlighting from github and move it to plugins folder:
Then, insert the following line at the end of the
~/.zshrc
file:Configure autosuggestions on Zsh
While you type a command on zsh shell, it’s useful if the shell supports the autosuggestions mechanism. Fortunately, oh-my-zsh supports this feature very well.
To enable auto-suggestion install zsh-autosuggestions plugin:
Then add the plugin to the list of plugins in
~/.zshrc
file:Now apply the change by running:
Conclusion
In this tutorial, we learned how to install and configure ZSH on Ubuntu 20.04 and CentOS 8 machines.
Zsh Autosuggestions Zsh Syntax Highlighting
Fish shell is another good alternative, worth trying for a better terminal experience. Thanks for reading and please leave your suggestion in the below comment section.