Skip to content

Plugins

Managing Neovim plugins with nvp. Use the curated library of 38+ plugins or plugin packages for complete setups.


Installing Plugins

From Library

The easiest way — use the built-in library of 38+ curated plugins:

# Browse available plugins
nvp library list

# Filter by category
nvp library list --category lsp

# Install individual plugins
nvp library install telescope
nvp library install treesitter

From File

Apply a plugin from a YAML file:

nvp apply -f my-plugin.yaml

From URL

Apply directly from a URL:

nvp apply -f https://example.com/plugin.yaml

From GitHub

Use GitHub shorthand:

nvp apply -f github:rmkohlman/nvim-yaml-plugins/plugins/telescope.yaml

From Stdin

Pipe YAML content:

cat plugin.yaml | nvp apply -f -

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:                            # Lazy-load triggers
    - VimEnter
  cmd:                              # Commands that trigger load
    - 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"

Managing Plugins

List Installed Plugins

nvp list

Get Plugin Details

nvp get telescope
nvp get telescope -o yaml

Enable / Disable a Plugin

nvp enable telescope
nvp disable copilot

Delete a Plugin

nvp delete telescope

Library Plugins

nvp includes 38+ curated plugins with a plugin package system for complete setups:

Plugin Packages

Complete plugin configurations for specific use cases are available via the library:

Package Plugins Description
rmkohlman 39 plugins Complete development environment with LSP, fuzzy finding, Git, AI, and more

Install all plugins from the library:

nvp library list
nvp library install telescope
nvp library install treesitter
# ... install as many as you need

Individual Plugins

Choose from 38+ curated plugins:

Core Dependencies

Plugin Description
plenary Lua utility functions (dependency for many plugins)
nvim-web-devicons File icons

Fuzzy Finding & Navigation

Plugin Description
telescope Fuzzy finder for everything
harpoon Quick file navigation

Syntax & Parsing

Plugin Description
treesitter Advanced syntax highlighting
treesitter-textobjects Text objects based on syntax

LSP & Completion

Plugin Description
lspconfig LSP configuration
mason LSP/DAP/Linter installer
nvim-cmp Autocompletion
cmp-nvim-lsp LSP completion source
cmp-buffer Buffer completion source
cmp-path Path completion source
luasnip Snippet engine

Git Integration

Plugin Description
gitsigns Git decorations and hunks
fugitive Git commands
diffview Git diff viewer

UI & Interface

Plugin Description
lualine Status line
bufferline Buffer/tab line
which-key Keybinding hints
alpha-nvim Dashboard
neo-tree File tree
dressing Better UI for inputs/selects
notify Better notifications

Editing & Text Manipulation

Plugin Description
comment Easy commenting
surround Surround text with pairs
autopairs Auto-close brackets
conform Formatting
nvim-lint Linting

Terminal & System

Plugin Description
toggleterm Terminal management

AI & Assistance

Plugin Description
copilot GitHub Copilot
copilot-cmp Copilot completion source
snacks QoL utility library (input, picker, opencode integration)
opencode opencode AI assistant integration

Language-Specific

Plugin Description
rust-tools Rust development
go Go development
typescript-tools TypeScript/JavaScript

And More...

Plus additional plugins for debugging, testing, note-taking, and more specialized workflows.

See full list:

nvp library list

Generating Lua Files

After installing plugins, generate the Lua files:

nvp generate

This creates files in ~/.config/nvim/lua/plugins/nvp/.

Custom Output Directory

nvp generate --output ~/my-config/lua/plugins

Plugin Dependencies

Dependencies are automatically handled:

spec:
  dependencies:
    - nvim-lua/plenary.nvim
    - repo: nvim-tree/nvim-web-devicons
      config: |
        require("nvim-web-devicons").setup()

Simple dependencies are just repo strings. Complex dependencies can have their own config.


Lazy Loading

Control when plugins load:

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