How To Enable Command Autosuggestions on Zsh

The Z shell, popularly known as zsh, is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh. Z shell is installable on all Linux distributions and many BSD systems. The packages are available in the OS upstream repositories.

If you don’t have zsh installed on your system check below commands that can be used:

### Install zsh on Ubuntu / Debian / Linux Mint / MX Linux / Kali Linux ###
sudo apt update
sudo apt install zsh

### Install zsh on CentOS 8/7 ###
sudo yum -y install epel-release
sudo yum -y install zsh

### Install zsh on Fedora ###
sudo dnf -y install zsh

### Install zsh on Arch Linux / Manjaro ###
sudo pacman -S zsh

Changing current logged in user shell to zsh:

sudo usermod -s /usr/bin/zsh $(whoami)

Or specify username manually to change the shell for:

sudo usermod -s /usr/bin/zsh jkmutai

Confirm the shell set for the user:

$ getent passwd jkmutai
jkmutai:x:1001:1001::/home/jkmutai:/usr/bin/zsh

Enable Zsh completions

Download code from github.

git clone git://github.com/zsh-users/zsh-completions.git ~/.zsh/zsh-completions

Include the directory in your $fpath, for example by adding in ~/.zshrc:

$ vim ~/.zshrc
fpath=(~/.zsh/zsh-completions/src $fpath)
$ exit

Enable zsh-autosuggestions in Zsh Shell

Once the shell has been set for the user, you can now enable zsh autosuggestions. The requirement for this autosuggestions is Zsh v4.3.11 or later.

You can check the version of Zsh using the following command:

$ zsh --version
zsh 5.9 (x86_64-pc-linux-gnu)

With Zsh autosuggestions set, as you type commands, you will see a completion offered after the cursor in a muted gray color. The color can be changed by setting the ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE variable.

Manually install zsh-autosuggestions

For manual installation download the code from Github using git command line tool:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

If you don’t have git install with the following commands:

# CentOS / Fedora #
sudo yum -y install git

# Ubuntu / Debian #
sudo apt install git

# Manjaro / Arch Linux #
sudo pacman -S git

Then add the following to your ~/.zshrc file.

echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" | tee -a ~/.zshrc

Start a new terminal session:

$ exit

For Oh My Zsh users

If you are an Oh My Zsh user, clone this repository into $ZSH_CUSTOM/plugins directory:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Then add the plugin to the list of plugins for Oh My Zsh to load inside ~/.zshrc file.

$ vim ~/.zshrc
plugins=(zsh-autosuggestions)

Start a new terminal session to start using zsh autosuggestions

For Antigen users

Add the following to your ~/.zshrc:

antigen bundle zsh-users/zsh-autosuggestions

Then start a new terminal session.

Visit the zsh-autosuggestions configuration sections to understand how you’ll configure and tune the components to give ultimate Zsh experience.

Bonus – Enable Syntax Highlighting on Zsh

The syntax highlighting for zsh enables highlighting of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.

Installation:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

Then, enable syntax highlighting in the current interactive shell:

source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

For Oh My Zsh users you can also use:

$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# Then Activate the plugin in

$ vim ~/.zshrc
plugins=( [plugins...] zsh-syntax-highlighting)

For more details check the zsh syntax highlighting project page.

Similar guides:

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.

Related Post

Welcome to our tutorial on installing and using Metasploit Framework on Arch | Manjaro | Garuda Linux systems. The MSF […]

Arduino boards are making immense waves in the digital production world as they are used heavily in creation of digital […]

Lightweight X11 Desktop Environment (LXDE) is a lightweight desktop environment created to be fast and to have comparatively low system […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.