vim plugins

An attempt to organize plugins/packages categorically. It is not meant to be exhaustive. I have not tried many of these plugins. See also Vim Awesome for plugins organized by rating, category, and some other thing. But, like this list, it is not all plugins.

Alignment

Browser Interaction

  • Openbrowser
  • Open URL - Opens URLs on the current line in your OS X default browser
  • Open URL - A simple plugin for opening urls in browser

Case

Clipboard

Code Development

Alternate File Switching

Build / Compile / Make

  • AsyncMake - Asynchronous make plugin for Vim 8.0
  • Asynctask - Modern Task System for Project Building, Testing and Deploying
  • BuildTask.nvim - Neovim lua plugin for running tasks from task.json file
  • Dispatch - Asynchronous build and test dispatcher
  • yabs.nvim - Yet Another Build System for Neovim, written in lua

Code Completion

Comments

  • Comment.nvim - Smart and powerful comment plugin for neovim. Supports commentstring, dot repeat, left-right/up-down motions, hooks, and more
  • commented.nvim - Neovim commenting plugin in Lua. Support operator, motions and more than 60 languages
  • kommentary - Neovim commenting plugin, written in lua
  • todo-comments.nvim - Highlight, list and search todo comments in your projects
  • vim-commentary - commentary.vim: comment stuff out

Debugging

  • nvim-dap - debug Adapter Protocol client implementation for Neovim (>= 0.5)
    • DAPInstall.nvim - A NeoVim plugin for managing several debuggers for Nvim-dap
    • dap-go.nvim - nvim-dap extenstion to make simpler debug Golang using Delve
    • nvim-dap-go - An extension for nvim-dap providing configurations for launching go debugger (delve) and debugging individual tests
    • nvim-dap-reactnative - Standalone debug adapter protocol for react native. Hopefully won’t have any specific editor/ide stuff
    • nvim-dap-ui - a UI for nvim-dap
    • nvim-dap-virtual-text - virtual text support for nvim-dap
    • telescope-dap.nvim - integration for nvim-dap with telescope.nvim
  • vdebug - Multi-language DBGP debugger client for Vim (PHP, Python, Perl, Ruby, etc.)
  • vimspector
  • vim-delve - Neovim / Vim integration for Delve
  • vim-unstack - parsing stack traces and opening the files

Documentation

Formatting

  • fmt.vim - Generic code formatting interface for Vim
  • format.nvim - Neovim lua plugin to format the current buffer with external executables
  • lsp-format.nvim - A wrapper around Neovims native LSP formatting
  • neoformat - A (Neo)vim plugin for formatting code
  • vim-autoformat - Provide easy code formatting in Vim by integrating existing code formatters.

General

Git / Github / Gitlab

  • agitator.nvim - a neovim/lua plugin providing some git-related functions
  • auto-git-diff - A vim plugin which shows git diff for Git Rebase Interactive
  • committia.vim - A Vim plugin for more pleasant editing on commit messages
  • diffview.nvim - single tabpage interface for easily cycling through diffs for all modified files for any git rev
  • git-conflict.nvim - A plugin to visualise and resolve merge conflicts in neovim
  • gitabra - Magit-lite
  • gitlinker.nvim - A lua neovim plugin to generate shareable file permalinks (with line ranges) for several git web frontend hosts. Inspired by tpope/vim-fugitive’s :GBrowse
  • gitsigns.nvim - Git signs written in pure Lua
  • git-messenger.vim - Vim and Neovim plugin to reveal the commit messages under the cursor
  • git-time-lapse - Fork of git-time-lapse: Perforce-style for vim
  • gv.vim - a git commit browser
  • igs.nvim - A minimalist Neovim plugin that enhances the usage of git status inside Neovim
  • lazygit.nvim - Plugin for calling lazygit from within neovim
  • neogit - magit for neovim
  • nvim-gfold - nvim plugin using gfold to switch repo and have statusline component
  • octo.nvim - Edit and review GitHub issues and pull requests from the comfort of your favorite editor
  • tig-explorer.vim - Vim plugin to use Tig as a git client. Seamless switching between vim and Tig with opening in the same buffer
  • vcs-jump - Jump to interesting places with a Git or Mercurial repo
  • vgit.nvim - Visual Git Plugin for Neovim
  • vimagit - Ease your git workflow within Vim
  • vim-conflicted - Easy git merge conflict resolution in Vim
  • vim-flog - A lightweight and powerful git branch viewer for vim
  • vim-fugitive - A Git wrapper so awesome, it should be illegal
  • vim-gh-line - vim plugin that open the link of current line on github
  • vim-gitgutter - A Vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks
  • vim-mergetool - Efficient way of using Vim as a Git mergetool
  • vim-merginal - Fugitive extension to manage and merge Git branches

Indenting

Language Support

All

Go

  • go.nvim - Modern Go development plugin for Neovim, based on nvim-lsp, treesitter and Dap
  • goldsmith.nvim - Use Neovim features, such as built-in LSP and tree-sitter, and develop Go code
  • gopher.vim
  • govim
  • vim-go

Haskell

HTML

Lua

  • nlua.nvim - lua Development for Neovim
  • lua-dev.nvim - dev setup for init.lua and plugin development with full signature help, docs and completion for the nvim lua API

Markdown

  • fidget.nvim - Standalone UI for nvim-lsp progress
  • glow-hover.nvim - plugin leveraging glow for LSPs hover responses
  • lspkind-nvim - Pictograms for lsp completion items
  • lspsaga.nvim - neovim lsp plugin
  • lsp-colors.nvim - Plugin that creates missing LSP diagnostics highlight groups for color schemes that don’t yet support the Neovim 0.5 builtin LSP client
  • lsp-rooter.nvim - lsp-rooter.nvim is a neovim plugin … to change the current working directory to the project’s root directory automagically using nvim native lsp
  • lsp_signature.nvim - lsp signature hint when you type
  • lsp-status.nvim - Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline
  • lsp-trouble.nvim - A pretty diagnostics list to help you solve all the trouble your code is causing
  • nvim-code-action-menu - Pop-up menu for code actions to show meta-information and diff preview
  • nvim-lightbulb - VSCode lightbulb for neovim’s built-in LSP
  • nvim-lspconfig - Quickstart configurations for the Nvim LSP client
  • nvim-lspinstall - Provides the missing :LspInstall for nvim-lspconfig
  • nvim-lsputils - Better defaults for nvim-lsp actions
  • symbols-outline.nvim - A tree like view for symbols in Neovim using the Language Server Protocol
  • vim-lsc
  • vim-lsp
  • vimway-lsp-diag.nvim - Live render workspace diagnostics in quickfix with current buf errors on top, buffer diagnostics in loclist
  • vista.vim - Viewer & Finder for LSP symbols and tags

Linting

  • ale
  • neomake
  • null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua
  • nvim-lint - An asynchronous linter plugin for Neovim complementary to the built-in Language Server Protocol support
  • syntastic

Snippets

Syntax Highlightling / Syntax Color

  • modes.nvim - Prismatic line decorations for the adventurous vim user
  • vim-SyntaxRange - Define a different filetype syntax on regions of a buffer

Tags / Code Navigation

Testing

  • vim-test - Run your tests at the speed of thought
  • vim-ultest - the ultimate testing plugin for NeoVim

Configuration / Local Config / Per Directory Config

Cut & Paste

Diff

Document Conversion

Encryption

File Browsing / File Management

File Finding / Fuzzy Finding / Grep

Focus

Folding

Grammar / Spelling

Help

HTTP / REST / GraphQL / JSON

  • GraphQL - A Vim plugin that provides GraphQL file detection, syntax highlighting, and indentation.
  • Jdaddy - JSON manipulation and pretty printing
  • nvim-jqx - Populate the quickfix with json entries
  • rest.nvim - A fast Neovim http client written in Lua
  • Restclient - An interactive HTTP client for Emacs in vim
  • Rest Console - A REST console for Vim
  • Vial HTTP - Simple http rest tool for vim

Improve Your Skills

Line Numbering

Macros

Note Taking

  • neorg - Modernity meets insane extensibility. The future of organizing your life in Neovim
  • nvim-workbench - A workbench plugin for you to write down all task related stuff without leaving vim
  • orgmode.nvim - Orgmode clone written in Lua for Neovim 0.5+
  • vim-notes - Easy note taking in Vim
  • vim-todo-lists - Vim plugin for TODO lists
  • vimoutliner - Work fast, think well.
  • vimwiki - Personal Wiki for Vim
  • wiki.vim - A wiki plugin for Vim
    • wiki-ft.vim - Simple Vim filetype plugin for wiki-files

Plugin / Package Management

QuickFix

  • errormarker.vim - Highlights and sets error markers for lines with compile errors
  • nvim-bqf - Better Quick Fix (nvim only)
  • nvim-jqx - Populate the quickfix with json entries
  • qf.nvim - Extends the default quickfix and location lists for neovim
  • qf_helpver.nvim - A collection of improvements for the quickfix buffer
  • QFGrep - a vim plugin to filter entries in Quickfix
  • quickfix-reflector.vim - Change code right in the quickfix window
  • quickpeek.vim - Show a preview popup on quickfix entries
  • quickr-preview.vim - Quickly preview Quickfix results in vim without opening the file
  • replacer.nvim - It makes a quickfix list editable in both content and file path
  • vim-loclist-follow - follow vim’s location list entries based on source buffer cursor position
  • vim-qf-preview - Preview the quickfix item under the cursor in a popup window
  • vim-qlist - Persist the results of :ilist and related commands via the quickfix list.
  • vim-qf - Tame the quickfix window

REPL / Interact with outside programs

  • Autorepl - Start REPLs quickly and easily
  • harpoon - get you where you want with the fewest keystrokes
  • iron.nvim - Interactive Repl Over Neovim
  • Ripple
  • Quickrun
  • Slime
  • sniprun - A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages
  • Terminator - Run your code in an output buffer or a vim terminal very conveniently

Scrolling

Search / Navigation / Find / Motion

Session / AutoSave

Smart Quotes / Smart Brackets / Pairs

Startup

Statusline / Tabline

Substitute / Swap / Replace / Sort

Terminal

Text Objects

Tmux

TreeSitter

TreeSitter (non-default) Language Modules

  • perl - Tree-sitter parser for Perl
  • vimL - Tree-sitter parser for VimL

Undo

Windows / Tabs / Buffers

Vim Script Development

Vim Script Libraries

Uncategorized