vim plugins I use

March 2020 ยท 3 minute read

I saw a post on lobsters that piqued my interest. Peter over at made a large list of vim plugins that they use.

It seems like a large amount of plugins - but everyone has their own set of preferences as to how they work, and I’d wager a guess that they’re better at vim than I’ll ever be ;) I’m the kind of guy who presses j 15 times much more often than ctrl-f and I don’t often use my leader key. /shrug

There’s a few in the list that I’m looking forward to trying out:

I’m going to go from top-to-bottom of my list of plugins rather than alphabetical - primarily due to laziness.

Experience-improving plugins

The following plugins enhance the way I use vim, but are not language specific.


vim-dirvish is a directory browser for vim. Honestly, that’s probably ‘nuff said. I press - and walk around the fs.


gundo.vim creates a visual tree of your undo history. Basically, git-esque history for your in-progress changes.


vim-airline is a simple tabline for vim. It’s not remotely as heavy as the tablines of old. There’s a number of themes and integrations for this.


Fuzzy path finder for files, buffers, tags, etc. I have this hooked up to ,p (for files) and ,b (for buffers) for ease-of-use.


talek/obvious-resize makes resizing splits extremely simple. I have these mapped to CTRL-<dir>. Supposedly works with tmux as well, but I don’t use that functionality.


vim-eunuch implements UNIX helpers within vim. Generally use this for :SudoWrite and :SudoEdit, but :Rename is helpful as well.


Hands-down the best git integration with vim. I don’t want to waste words here, just check the README and enjoy.


Extremely simple extension to vim-fugitive that shows the first line of the commit message when exploring with :Gblame.


gitk for vim (using vim-fugitive). No longer maintained, but works well. Extremely helpful if you don’t want to look at git commits separately.


Dark powered asynchronous completion framework for neovim/Vim8

Shougo, possibly the most productive vim plugin developer ever - has quite a history with autocomplete helpers in vim. This is the one I’ve been using since switching to neovim. Works well, and that’s all I could ask for.


Great integration for writing commit messages in vim. Provides a commit message window, diff window, and git status window.

Set $EDITOR to vim and enjoy writing commit messages in vim.


My own slight tweak of owickstrom/vim-colors-paramount.

Language-specific vim plugins


The (IMO) de facto implementation of a language server client in vim. Supports anything you’d expect from such a client, including go-to-definition, rename, hover for type info, symbol query, etc.


LSP-enabled linting plugin. Pretty much every language is supported. It also supports go-to-definition and find-references.


Provides syntax highlighting for yaml. Vim has this by default but it is slow.


Better ruby integration with vim. I’ll probably end up removing this as I don’t have to write ruby anymore :)


Syntax highlighting for Vue.js and integrates with ALE.


Go support for vim. Updated frequently, provides gopls for language client, as well as other Go-specific utilities.


Support for the (best) Go debugger, delve.


Implements support for clang-format in vim. I use this for C++.


Implements rust syntax highlighting and ft detection. Formats via rustfmt.