Plugins Overview¶
nvp manages Neovim plugins using YAML. Define plugins as Infrastructure as Code, install from the built-in library, and generate Lua configuration files for lazy.nvim.
How It Works¶
YAML Plugin Definitions → nvp generate → Lua files (lazy.nvim)
(~/.nvp/plugins/) (~/.config/nvim/lua/plugins/nvp/)
- Install plugins from the library or define them in YAML
- Run
nvp generate - Lua files are created for lazy.nvim to load on Neovim startup
Installing Plugins¶
From the Built-in Library¶
The easiest way — 38+ curated plugins with pre-configured setups:
# Browse the library
nvp library list
nvp library list --category lsp
# Install plugins
nvp library install telescope
nvp library install treesitter
nvp library install lspconfig
From a YAML File¶
From a URL¶
From GitHub¶
From Stdin¶
Managing Plugins¶
# List installed plugins
nvp list
# Get plugin details
nvp get telescope
nvp get telescope -o yaml
# Enable / disable (without deleting)
nvp enable telescope
nvp disable copilot
# Delete
nvp delete telescope
Generating Lua Files¶
After installing plugins, generate the Lua configuration:
Files go to ~/.config/nvim/lua/plugins/nvp/ by default.
Custom Output Directory¶
Plugin YAML Format¶
apiVersion: devopsmaestro.io/v1
kind: NvimPlugin
metadata:
name: telescope
category: fuzzy-finder
description: Highly extendable fuzzy finder
spec:
repo: nvim-telescope/telescope.nvim
branch: master # Optional
version: "0.1.5" # Optional (tag)
enabled: true # Default: true
lazy: true # Default: true
event:
- VimEnter
cmd:
- Telescope
dependencies:
- nvim-lua/plenary.nvim
- nvim-tree/nvim-web-devicons
config: |
require("telescope").setup({
defaults = {
file_ignore_patterns = { "node_modules", ".git" },
},
})
keys:
- key: "<leader>ff"
action: "<cmd>Telescope find_files<cr>"
desc: "Find files"
- key: "<leader>fg"
action: "<cmd>Telescope live_grep<cr>"
desc: "Live grep"
Lazy Loading¶
Control when plugins load to minimize Neovim startup time:
spec:
lazy: true # Don't load on startup
event: # Load on these events
- BufReadPost
- BufNewFile
cmd: # Load when these commands run
- Telescope
ft: # Load for these filetypes
- python
- go
keys: # Load when these keys are pressed
- key: "<leader>ff"
action: "<cmd>Telescope find_files<cr>"
Next Steps¶
- Plugin Library - Browse all 38+ curated plugins
- Plugin Packages - Install curated plugin sets
- Plugin Sources - Configure remote plugin sources
- Commands Reference - Full command reference
- NvimPlugin YAML Reference - All YAML fields explained