Migration to Neovim?

Trying out a different editor

I’ve been using Vim since about 2009 or so when a friend in college got me hooked on the editor (I had been using KDE’s Kate for the most part before that). My dotfiles (which I’m sure I’ll write about at some point) are quite extensive and I basically have my own Vim plugin management (which is fine; I’ve carried patches to a number of plugins for years). I’ve decided to try out Neovim recently and figured I’d post about my first impressions.

After coming across a post on Neovim 0.5, I decided to try it out. Not just because a coworker had managed to get a patch that I’m mildly interested in merged there and not in Vim (yet). It seems I have to wait for 0.5 to get that patch, but that’s fine; I can use the time to adapt to some of the differences.

First, the things that are stumbling blocks to smooth usage:

  • <Ctrl-Shift><Space> performs a WORD motion. I use this binding to clear notifications and sometimes they disappear before the keystroke is done and having a sudden motion in the editor is not so nice. I’ve filed an issue about this difference. I don’t see a mapping for it, so I don’t know where it comes from.
  • The <Esc> timeout is longer than it was in Vim. My fingers have learned the timings in Vim and the longer timeout ends up getting my modes mixed up when leaving Ins mode.
  • Ruby support isn’t built into the Fedora package. This means that the LustyBuffer and LustyExplorer plugins I use don’t work, but I suspect that the fzf plugin is sufficient (I hadn’t been using the Lusty plugins much recently anyways)

These are largely minor and I’ll probably get used to the timing difference, but it’s something that interferes with a smooth transition at least.

The things that I do like so far:

  • block drawing characters for window splits (instead of ASCII characters that don’t meet up)
  • feels faster
  • different cursors for different modes
  • faster syntax highlighting and responsiveness

The last one is pretty important as some projects I work on have largish C++ source files and typing an open parenthesis or brace would end up freezing until the syntax highlighting had caught up to the AST disruption. Neovim behaves much better in this instance.

We’ll see how things fare over the next few weeks.