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
ctrl-f and I don’t often use my leader key.
There’s a few in the list that I’m looking forward to trying out:
- markonm/traces.vim - visual feedback of changes via
:s/. I often screw this up, so it sounds great.
- airblade/vim-rooter - change project root to
.git(or other “known files”)
- a.vim - alternate between
I’m going to go from top-to-bottom of my list of plugins rather than alphabetical - primarily due to laziness.
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
(for files) and
,b (for buffers) for ease-of-use.
talek/obvious-resize makes resizing splits extremely simple. I have these
CTRL-<dir>. Supposedly works with tmux as well, but I don’t use
vim-eunuch implements UNIX helpers within vim. Generally use this for
: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
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.
$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.