Paq is a Neovim package manager written in Lua.
- Simple: Easy to use and configure
- Fast: Installs and updates packages concurrently using Neovim's event-loop
- Small: Around 150 LOC
- git
- Neovim 0.4.4 (stable)
Clone this repository.
For Unix-like systems:
git clone https://github.com/savq/paq-nvim.git \
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/paqs/opt/paq-nvim
For Windows:
git clone https://github.com/savq/paq-nvim.git "$env:LOCALAPPDATA\nvim-data\site\pack\paqs\opt\paq-nvim"
In your init.vim or init.lua, you can write something like:
lua << EOF
vim.cmd 'packadd paq-nvim' -- Load package
local paq = require'paq-nvim'.paq -- Import module and bind `paq` function
paq{'savq/paq-nvim', opt=true} -- Let Paq manage itself
-- Add your packages
paq 'neovim/nvim-lspconfig'
paq 'nvim-lua/completion-nvim'
paq 'nvim-lua/lsp_extensions.nvim'
paq{'lervag/vimtex', opt=true} -- Use braces when passing options
paq{'dracula/vim', as='dracula'} -- Use `as` to alias a package name (here `vim`)
EOF
Then, run :PaqInstall
.
In general, to add packages to Paq's list, call paq '<gh-username>/<repo>'
inside a Lua chunk (or in a separate Lua module).
PaqInstall
: Install all packages listed in your configuration.PaqUpdate
: Update all packages already on your system (it won't implicitly install them).PaqClean
: Remove all packages (in Paq's directory) that aren't listed on your configuration.
Option | Type | |
---|---|---|
as | string | Name to use for the package locally |
branch | string | Branch of the repository |
opt | boolean | Is the package optional? |
run | string | Shell command to run after install/update |
run | function | Lua function to run after install/update |
url | string | URL of the remote repository, useful for non-GitHub repos |
For more details on each option, refer to the documentation.
NOTICE:
The hook
option is deprecated, and will be removed in Paq 1.0. Use run
instead.
You can find a comparison with Packer.nvim, and a migration guide from Vim8 plugin managers (vim-plug and Minpac) in the wiki.