I've been using Vim as my main text editor for 18 years, but for most of that time I've been using something very close to the default configuration: my vimrc contained not much more than preferences for indentation and how to visually indicate white space characters like tabs. Last but not least, I've used a single colour scheme for most of that time: Zenburn.

In 20151 I started exploring a few Vim plugins2. To manage them, I started by choosing a plugin manager, Pathogen3. Recently I noticed that the plugin's author, Tim Pope, now recommends new users just use Vim's built in package management instead. I got curious about Tim Pope's other plugins: He has written a great deal of them.

Given I've spent most of two decades with a barely-configured Vim, you can imagine that I don't want to radically alter the way it works, and so I did not expect to want to use a lot of plugins. The utility of a plugin would have to outweight the disadvantages of coming to rely on one. But when browsing Tim's plugins, time and time again, I found myself reacting to description with How did I manage without this?. And so, I've ended up installing all of the following, all by Tim Pope:

  • vim-characterize — add unicode character names to output of ga
  • vim-dispatch — An out-of-band system for making ":Make" non-blocking
  • vim-fugitive — high quality Git integration
  • vim-rsi - readline key mappings in a few sensible places
  • vim-sleuth — Figure out whitespace preferences (tabs, indentation level) from the current buffer
  • vim-speeddating — handle dates (YYYY-MM-DD) properly with the increment/decrement functions (<C-A>, <C-X>)
  • vim-surround — mappings to manage "pairs" of characters nicely (e.g. brackets, quotes)
  • vim-unimpaired — pairs of complementary mappings, e.g. short mappings for :cnext and :cprevious
  • vim-vinegar — quality-of-live improvements to netrw, Vim's built-in file browser

  1. I had to look this up, probably because I started at redhat
  2. I have opinions about Plugins, what supporting them means architecturally for your application, the interaction with Open Source, and stuff like that, perhaps for another post.
  3. To try out Vim plugins the first thing you need to figure out is how to manage them (install, activate, configure). Vim grew a Plugin manager in version 8 (2016). Prior to that, people wrote third-party ones. For this reason there is a frankly absurd number of Plugin managers, including: Vim's own; Vim Plug; Vundle; Dein; Volt and Pathogen.