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.


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



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


  • 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


  • 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



  • 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.


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
  • git-worktree.nvim - A simple wrapper around git worktree operations, create, switch, and delete
  • 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


Language Support



  • 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




  • 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


  • 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


  • 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


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

  • aerial.nvim - Neovim plugin for a code outline window
  • any-jump.vim - Jump to any definition and references IDE madness without overhead
  • vim-gutentags - A Vim plugin that manages your tag files
  • lh-tags - ctags base updating, and browsing from vim
  • nvim-lsp-smag - Seamless integration of language server locations into NeoVim
  • tagbar - Vim plugin that displays tags in a window, ordered by scope
  • taglist - Source code browser plugin for Vim


  • neotest - A framework for interacting with tests within NeoVim
  • 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


Document Conversion


File Browsing / File Management

File Finding / Fuzzy Finding / Grep



Grammar / Spelling



  • 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


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


  • 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

  • vim-autorepl - Start REPLs quickly and easily
  • harpoon - get you where you want with the fewest keystrokes
  • iron.nvim - Interactive Repl Over Neovim
  • vim-ripple - Minimalist plugin to interact with a REPL
  • vim-quickrun - Run commands quickly
  • vim-slime - A vim plugin to give you some slime
  • sniprun - A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages
  • vim-terminator - Run your code in an output buffer or a vim terminal very conveniently


Search / Navigation / Find / Motion

  • calltree.nvim - Neovim’s missing call-hierarchy UI
  • clever-f.vim Extended f, F, t and T key mappings for Vim
  • eregex.vim - Perl/Ruby style regexp notation for Vim
  • far.vim - Find And Replace Vim plugin
  • hop.nvim - Neovim motions on speed
  • leap.nvim - A motion plugin that keeps you in the zone
  • lightspeed.nvim - Reach on-screen targets with unparalleled speed
  • loupe - Enhanced in-file search for Vim
  • msearch.vim - Highlight multiple search patterns in vim
  • nvim-hlslens - Hlsearch Lens for Neovim
  • nvim-spectre - Find the enemy and replace them with dark power
  • pounce.nvim - Incremental fuzzy search motion plugin for Neovim
  • quick-scope - Lightning fast left-right movement in Vim
  • scalpel - Fast within-file word replacement for Vim
  • traces.vim - Range, pattern and substitute preview for Vim
  • vim-abolish - easily search for, substitute, and abbreviate multiple variants of a word
  • vim-anzu - Vim search status
  • vim-asterisk - *-Improved
  • vim-cool - A very simple plugin that makes hlsearch more useful
  • vim-easymotion - Vim motions on speed
  • vim-eft - provides f/t/F/T mappings that can be customized by your setting.
  • vim-endwise - wisely add “end” in ruby, endfunction/endif/more in vim script, etc
  • vim-evanesco - Automatically clears search highlight
  • vim-extended-ft - extended f,t motions
  • vim-mark - highlight several words in different colors simultaneously
  • vim-NotableFt - changes the behaviour of the f, F, t, T, ; and , commands to only match on characters that are considered ‘notable’
  • vim-jumpmotion - Jump to anywhere using any motion in all modes: Lightweight alternative to vim-easymotion
  • vim-searchhi - Highlight the current search result differently
  • vim-searchindex - display number of search matches & index of a current match
  • vim-searchlight - Highlights the current search match
  • vim-searchx - The extended search motion.
  • vim-slash - Enhancing in-buffer search experience
  • vim-sneak - Jump to any location specified by two characters
  • vim-wordmotion - More useful word motions for Vim

Session / AutoSave

Smart Quotes / Smart Brackets / Pairs


Statusline / Tabline

Substitute / Swap / Replace / Sort


Text Objects




Windows / Tabs / Buffers

  • barbar.nvim - a neovim tabline plugin
  • bclose.vim - The BClose Vim plugin for deleting a buffer without closing the window
  • bufexplorer - BufExplorer Plugin for Vim
  • buffer-tree - A vim-plugin for rendering your buffer-list as an ascii-tree, written entirely in Vimscript.
  • dwm.vim - Tiled Window Management for Vim
  • focus.vim - Auto-Focussing Splits/Windows for Neovim
  • golden-ratio - Automatic resizing of Vim windows to the golden ratio
  • golden size - Golden Size for your active Neovim window
  • lens.vim - A Vim Automatic Window Resizing Plugin
  • nvim-window - Easily jump between NeoVim windows
  • reach.nvim - Buffer, mark, tabpage switcher for Neovim
  • smart-splits.nvim - Smart, directional Neovim split resizing and navigation. Think about resizing splits in terms of “move the divider to the left/right/up/down”
  • stabilize.nvim - Neovim plugin to stabilize window open/close events
  • stable-windows - Keeps vim windows stable on layout changes
  • taboo.vim - Few utilities for pretty tabs
  • taboverflow.vim - Too many tabs in vim? taboverflow comes in rescue!
  • vim-accordiaon - window manager for people who love splits
  • vim-bufferline - super simple vim plugin to show the list of buffers in the command bar
  • vim-buffet - IDE-like Vim tabline
  • vim-bufkill - delete buffer without closing the window
  • vim-buftabline - Forget Vim tabs – now you can have buffer tabs
  • vim-choosewin - Land on window you chose like tmux’s ‘display-pane’
  • vim-CursorLineCurrentWindow - only highlight the screen line of the cursor in the currently active window
  • vim-diminactive - dim inactive windows
  • vim-maximizer - Maximizes and restores the current window in Vim
  • vim-tradewinds - the missing window movement
  • vem-tabline - display buffers and tabs in the tabline
  • vim-venter - Vim plugin that horizontally centers the current window(s)
  • vim-smartq - Master key for exiting/deleting vim buffers with respect to window splits and tabs.
  • vim-winmanip - moving/duplicating/maximizing vim windows
  • vim-xtabline - Tabline customization with buffer filtering
  • vimade - fades your inactive buffers
  • visual-split.vim - control splits with visual selections or text objects
  • wheel - Quick navigation framework for Vim and Neovim : buffer groups, mru, locate, find, grep, outline, yank, …
  • winresizer - very simple vim plugin for easy resizing of your vim windows
  • winshift.nvim - Rearrange your windows with ease
  • you-are-here.vim - See the filenames of your vim splits in easy-to-read popups, switch windows seamlessly

Vim Script Development

Vim Script Libraries