Vim Config Update: 2019 Edition
I like to update my Vim configuration every 2-5 years just to make sure I am as ninja and efficient as possible.
My full Vim Tutorial
But the last few times I’ve been focused on one main thing: simplicity. In my previous cycle that meant moving from Vim 7.x to Vim 8, which included a completely different way to manage plugins.
This time the impetus is a book—specifically Modern Vim, by Drew Neil—and I’m using it to not just update with some new tricks, but also to simplify my Plugin management.
So what you’ll find below are all the changes I’m making to my config for 2019, with many of them coming directly from Modern Vim.
1. I moved to Neovim
The Modern Vim book—so basically Drew Neil—was heavily pushing Neovim so I decided to take a couple hours to explore it. Short version is that it’s a cleaner, trimmed-down, more performant version of Vim with a better development community. Check, check, and check.
It feels so great to just start over.
So I migrated. But I didn’t use the training wheels (importing your previous .vimrc)—no, I started from scratch. It felt so good.
2. .vimrc pruning
The first thing I do when I start an update/cleaning session is go into my .vimrc file and pull out stuff I don’t understand or remember. Usually this is from some random thing I heard of somewhere and wanted to try, or from some previous hack regarding plugins. Ideally I’d like to not have a single setting in there that I don’t understand, but over time these grow so as to make that a high standard.
This year, though, I really did it. Because I moved to Neovim I just completely started over (see above).
3. Updated Plugin management with vimpack
Ok, so this is the craziest thing. This is perfection. Valhalla.
In previous versions of Vim you had to sacrifice all sorts of animals to be able to manage plugins. You could do things manually, you could use Pathogen, you could do custom stuff—etc. But it was all kind of gross.
Even with the latest upgrades in Version 8, you still had management problems with plugins that you had in plugins/bundle/something/something/ because if they were git repositories (why wouldn’t they be) then they threw errors when you tried to update them.
Well, now there’s a new system altogether, called Minpac. It’s so sweet. Check this.

Vim plugin management using Neovim/Minpac
So, all you do is add those lines of code to your Neovim install, and it will—get this—automatically install them and keep them updated!
In fact, you don’t even have to start with plugins installed (other than maybe Minpac itself) since Minpac installs them all into its own folder structure and handles everything.
I’m very happy right now.
4. A few new tricks
And here are a few changes/efficiencies I’ve picked up in the last few days of studying.
# Copying and pasting from the system clipboard
It’s always been annoying to have two separate clipboards—one in Vim and one in macOS (or whatever OS you’re on). Well now you can deal with them both independently or copy and paste between them.
vnoremap y "+y
# Changed my leader key to "'>" (single quote)
I’m a huge fan of using leader shortcuts, but for some reason the SPACEBAR wasn’t working for me. So I changed it to “‘” a single quote, which is one key to the right of my right hand’s pinky finger. Super efficient.
# I remapped the ":" shortcut (which normally requires Shift-;), to ";"
This just makes it easier to enter commands from within Vim; my right pinky is already sitting on the “;”, and now it’s just one stroke instead of a SHIFT chord.
# Added a few key leader shortcuts
Save file (leader-w)
Save and exit (leader-e)
Exit without saving (leader-q)
Summary
So here’s what I now have:
Neovim instead of Legacy Vim.
A completely new vimrc.
A completely new way of managing plugins that is completely built-in and automatic.
A few new tricks.
Here’s my $vimrc for anyone interested.
Solid upgrade.
Notes
There is some wrangling that needs to be done to get Neovim installed and configured, but it’s outside the scope of this article. It’s not too terribly difficult really; it’s mostly just realizing that Neovim works off of a init.vim file instead of .vimrc, and that it uses a different directory structure. Other than that most stuff is pretty close to identical.
My $VIMRC.
—
Become a direct supporter of my content for less than a latte a month ($50/year) and get the Unsupervised Learning podcast and newsletter every week instead of just twice a month, plus access to the member portal that includes all member content.
Daniel Miessler's Blog
- Daniel Miessler's profile
- 18 followers
