My experience and opinions about several popular Zsh plugin managers.

zplug

I have written about zplug here. According to here, it 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.

Antiboby

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.

References

zplugin

Zplugin is also an advanced plugin manager with rich functionalities. 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/zplugin/master/doc/install.sh)"

How to use

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

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

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

zplugin ice pick"async.zsh" src"pure.zsh"
zplugin 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 zplugin 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
 zplugin ice svn lucid
 zplugin snippet OMZ::plugins/pip

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

My feeling

Zplugin has so many ice modifiers and so many featues that new users may find it hard to swallow 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