Skip to main content
  1. Posts/

My Experience with Several Zsh Plugin Managers

··481 words·3 mins·
Linux Zsh
Table of Contents

In this post, I share my experience and opinions on several popular Zsh plugin managers.

zplug
#

I have written about zplug in this post. According to this gist, zplug is slow in loading plugins due to its poor design.

My feeling
#

It has a lot of features. The speed of installing plugins is acceptable but not so fast. Other than that, it is enough for daily usage.

Antibody
#

Antibody is proposed to solve the performance issues with antigen. First, we need to install antibody:

curl -sfL git.io/antibody | sh -s - -b $HOME/local/bin

The -b option specify where you want to install antibody. Antibody will be installed under $HOME/local/bin.

How to use
#

After installing antibody, a typical way to install plugins is like the following:

# initialize antibody
source < (antibody init)

antibody bundle zsh-users/zsh-completions
antibody bundle caarlos0/zsh-open-github-pr
# use the oh-my-zsh plugins
antibody bundle robbyrussell/oh-my-zsh path:plugins/aws
antibody bundle zsh-users/zsh-syntax-highlighting

Antibody can use plugins from the oh-my-zsh repo with the path annotations shown above.

My feeling
#

Antibody is fast in installing the plugins, but it seems that there is no hint or progress bar informing the user of the progress. It also has less feature compared to other plugin managers.

Ref:

zinit
#

Update-2020-07-28: Previously zinit is known as zplugin, but the author has decided to rename it to zinit. For more details, see here, here and here.

zinit is also an advanced plugin manager with rich features. In fact, I was overwhelmed when I started using it. It is simple to install, just run the below command:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/zdharma/zinit/master/doc/install.sh)"

How to use
#

To install normal plugins, zinit works like other plugin managers:

zinit load softmoth/zsh-vim-mode
zinit load zsh-users/zsh-autosuggestions
zinit load zdharma/fast-syntax-highlighting

zinit also has the so-called ice modifiers, which are used to modify the behaviour of the plugin installation command below. For example, to install the pure theme, we can use the following command:

zinit ice pick"async.zsh" src"pure.zsh"
zinit light sindresorhus/pure

It means that we will first source async.zsh under the repo and then source pure.zsh.

Install oh-my-zsh plugins
#

To install oh-my-zsh plugins, we need to use zinit snippet command. Oh-my-zsh plugins start with the OMZ:: prefix. Below I show how to install single-files OMZ plugin and multiple-file OMZ plugins.

 # Install a OMZ plugin with multiple files
 zinit ice svn lucid
 zinit snippet OMZ::plugins/pip

 # Install a OMZ plugin with single file
 zinit ice wait lucid
 zinit snippet OMZ::plugins/fzf/fzf.plugin.zsh

My feeling
#

zinit has so many ice modifiers and so many features that new users may find it hard to understand all of this. It also has a lot of commands that I do not understand. In summary, it has steeper learning curves compared to other plugin managers.

References
#

Related

Binding Keys in Zsh
··307 words·2 mins
Linux Zsh
Boosting Your Productivity on Terminal with Zsh and Plugins
··716 words·4 mins
Linux Shell Zsh
Fzf Installation and Usage
··772 words·2 mins
Linux Nvim Shell Bash Zsh Plugin