Vim or Neovim: Should you upgrade from the old classic?
Vim isn’t the easiest text editor to learn, but there’s a reason that it has a lasting legacy. Meanwhile, Neovim is tweaking the old favorite to make it more accessible. Which is better?
Full disclosure: we are spoiled. Our smart phones have more processing power than all of NASA did in 1969 – combined. It’s hard enough to imagine going back to an age where RAM was measured by MB let alone the age of MS-DOS or Amiga computers. For every piece of basic software we use today, there was a time when it was new and trailblazing.
Vim is one of those stories.
Initially released back in November 1991, even Vim’s website aesthetic is charmingly reminiscent of simpler Internet 1.0 days. According to the Stack Overflow Developer Survey 2018, Vim is still going strong as the fifth most popular development environment. (Stack Overflow also notes that it is the most popular choice for DevOps and sysadmins. Seemingly, the only reason it isn’t higher up the list is because of Android Studio and Xcode’s popularity for mobile app developers.)
Vim’s history is a journey through programming nostalgia. Recently, TwoBitHistory published a great retrospective of where it all began and the legacy it created. Even in 2018, the Vim community is strong and active. On Reddit alone, the r/vim sub has 54.4k subscribers as of writing this. Between all the memes, plugins, customization, and troubleshooting lies a serious dedication to the historic text editor.
However, recently there has been another name making the rounds: Neovim.
What’s the difference between the two, and why are some programmers moving ship?
Messing with the classics
Cons of Vim:
- Vim went ten years without a major release. Version 7.0 came out in 2006 and included spell checking, code completion, and tab pages to name a few features. A decade later, version 8.0 was released in 2016. One of the major features in 8.0 was added async support, which was previously only in Neovim. While the Oracle line of thinking of a new release every 6 months is causing release fatigue, ten years is a release drought.
In with the new
Pros of Neovim
- Neovim is basically an modernized out of the box version of Vim. It stands on the shoulders of giants and improves what needs improving. Their vision states, “It is not a rewrite but a continuation and extension of Vim…Neovim is built for users who want the good parts of Vim, and more.”
- Forward-thinking architecture. Neovim has added some great features, including embedded terminals, saner defaults, and a different plugin architecture. Without a benevolent dictator for life, Neovim is more welcome to change that isn’t just bug fixes and is constantly looking to develop. Take a look at the release changelog yourself, and compare it to Vim’s. The
:terminalcommand is used for opening up a terminal buffer that uses your default shell. You can also specify what program you wish to run in the buffer.
- The goals of Neovim are simple: create a flexible, extensible Vim, have consistent cross-platform user experience and backwards compatibility, and have a small, fast core.
- No, Neovim isn’t turning Vim into an IDE. It is focusing on usability instead of tradition.
- The newest release has a host of changes, bug fixes, and features including API improvements and Windows subsystem support. Compared to Vim’s glacier-paced releases, Neovim is fast-paced and fixes what the community wants.
Not every Vim user is moving over the new and improved text editor and debates on message boards continue discussing the differences and benefits of both. At the end of the day, much like programming languages, it is up to the user to find which suits them.
Have you given Neovim a test drive or made the switch? How does it work for you?