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.