vim plugins I use

March 2020 ยท 3 minute read

I saw a post on lobsters that piqued my interest. Peter over at catonmat.net 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.

justinmk/vim-dirvish

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

sjl/gundo.vim

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

vim-arline/vim-arline

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.

ctrlpvim/ctrlp.vim

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

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.

tpope/vim-eunuch

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

tpope/vim-fugitive

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

tommcdo/vim-fugitive-blame-ext

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

gregsexton/gitv

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.

Shougo/deoplete.nvim

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.

rhsyd/committia.vim

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.

chrsm/vim-colors-paramount

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

Language-specific vim plugins

autozimu/LanguageClient-neovim

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.

w0rp/ale

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

stephpy/vim-yaml

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

vim-ruby/vim-ruby

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

posva/vim-vue

Syntax highlighting for Vue.js and integrates with ALE.

fatih/vim-go

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

sebdah/vim-delve

Support for the (best) Go debugger, delve.

rhysd/vim-clang-format

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

rust-lang/rust.vim

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

;wq