Skip to content

Comparisons

Sergio A. Vargas edited this page May 3, 2022 · 18 revisions

Comparison to other package managers

Paq is very limited in scope. If you think Paq doesn't have all the features you need or if you need Vim 8 compatibility, consider trying other package managers.

There are many Neovim package managers out there. For brevity's sake, only the two most commonly used are listed here.

Packer.nvim

Packer.nvim is another package manager written in Lua. It provides extensive configuration options for lazy loading, dependency management, and many other features that are seldom found in other (Neo)vim package managers.

Packer uses Lua to add better package management features, whereas Paq is more about removing the cruft from previous Vim package managers.

If you only use your package manager for cloning things from GitHub, both Paq and Packer will work fine. If you need specific configuration options, Packer is a better alternative for you.

Vim-plug

Vim-plug has been the most popular Vim 8 manager for a while. Paq was inspired by Vim-plug but feature parity is not an objective. In fact, one of the original motivations for writing Paq was the fact that Vim-plug provides too many ways to do certain operations. Vim-plug has five different ways to do concurrent installs, that may or may not work depending on your Vim version. Paq has only one that is always supported by Neovim.

If you need Vim 8 compatibility, or if you don't want to write your configuration in Lua, Vim-plug is a better alternative for you.

Migrating from Vim-plug

You can move your packages manually, or reinstall them with Paq. Both Vim-plug and Paq handle packages as git repositories, so there shouldn't be any issues.

Vim-plug puts packages in it's own custom directory, you can see where calling:

:echo stdpath('data') .. '/plugged'

If you decide to move your packages manually, you'll have to split your packages into the start and opt directories, Paq can't do that for you. See :h paq-directory and :h packages for more information.

In your config, what you would write in a Vim-script file like this:

" VimL + Plug
call plug#begin('~/.vim/plugged')

Plug 'neoclide/coc.nvim', {'branch':'release'}

call plug#end()

Would be written in a lua file like this:

-- Lua + Paq
require 'paq-nvim' {
    'paq-nvim';
    {'neoclide/coc.nvim', branch='release'};
}

Note that Paq takes a single list instead of multiple Plug calls, braces also enclose the name of the repository, options use an equals sign instead of a colon, and the keys don't need quotes.

Clone this wiki locally