ZSH - Your terminal on steroids!

Hello World! I am a passionate programmer with zest to learn something new everyday! Research Intern@IIT Delhi | MLH Fellow'20 | Ex DSC Lead | ASI '20 | Former Research Intern@IIIT Allahabad
Search for a command to run...

Hello World! I am a passionate programmer with zest to learn something new everyday! Research Intern@IIT Delhi | MLH Fellow'20 | Ex DSC Lead | ASI '20 | Former Research Intern@IIIT Allahabad
I totally feel you!
Glad you liked it!
When Confidence Outpaces Competence
Organisation: GFOSS Open Technology Alliance Project: MediaCMS - modern, fully featured video and media CMS Mentor: Markos Gogoulos 📙 Abstract My proposal was selected for MediaCMS - modern, fully-featured video and media CMSunder GFOSS Open Tech...

How I approached writing GSoC proposals

My journey of being part of GSoC'21

BItwarden to the rescue!

ZSH, also called the Z shell, is an extended version of the Bourne Shell (sh), with plenty of new features, and support for plugins and themes. Since it’s based on the same shell like Bash, ZSH has many of the same features, and switching over is a breeze.
The Z-Shell, zsh for short, is a command interpreter for UNIX systems, or in UNIX jargon, a shell because it wraps around the commands you use. More than that, however, zsh is a particularly powerful shell, and it’s free, and under regular maintenance, with lots of interactive features allowing you to do the maximum work with the minimum fuss. Of course, for that, you need to know what the shell can do and how, and that’s what this guide is for.
ZSH has too many features to list here, some just minor improvements to Bash, but here are some of the major ones:
Plugin and theme support is probably the coolest feature of ZSH and is what we’ll focus on here.
Oh-My-Zsh is the most popular plugin framework for ZSH, and it comes with many built-in plugins and themes as well. There are also a couple of other plugin frameworks, including Antigen, which is a full package manager for ZSH, but Oh-My-Zsh has loads of plugins built right in and does its job well.
Oh-My-Zsh has a simple install script you can run:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
From there, you can enable and disable plugins by adding them to your .zshrc file, located in your ~ directory.
There are plenty of themes to go around, but spaceship-prompt is one that I find fancy. It adds integration with git and command history, incredible customization, and wraps it all up in a slick interface based on the powerline plugin for vim.
To set up spaceship-prompt (if you installed Oh-My-Zsh) just clone the repository into the .oh-my-zsh custom themes folder:
git clone https://github.com/denysdovhan/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
Then you need to enable it in .zshrc:
ZSH_THEME="spaceship"
After that, source your .zshrc, and you should see the changes applied.
source ~/.zshrc
You can find the full documentation for spaceship-prompt on the repo.
Oh My Zsh comes with a shitload of plugins for you to take advantage of. You can take a look in the plugins directory and/or the wiki to see what's currently available. Enabling Plugins
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the .zshrc file. You'll find the zshrc file in your $HOME directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
This is an example of how the plugin config apparently looks like in zshrc file -
plugins=(
git
bundler
dotenv
osx
rake
rbenv
ruby
)
My two favourite and most used plugins are -
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
After installing them, just add them to plugins section of .zshrc and source it.
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
Remeber, the plugins are super fun to add, but the more you add, the more your terminal will take time to fire up! So make sure that you add only the plugins that are absolutely necessary to you!
This is my .zshrc file for reference!
Thank you for reading! Comment if you face any difficulties in setting up your perfect zsh config!