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.