In this article, we’ll learn the differences between Vim vs Neovim. Vim has the go-to software if you are looking for a powerful terminal-based emulator for decades. In fact, it is one of the oldest open-source projects that has survived in the course of time. There are a lot of very good terminal editors like nano but they come nowhere close to the extensibility and functions and modes in vim.
This was the case until 2014 when a fork of vim the Neo-vim appeared on the open-source horizon. Neo-vim often very controversially hailed as the future of vim was designed with the modern user in mind. Over the years there has been a lot of development in both Vim(especially after Neo-vim came along) and obviously Neo-vim.
Vim vs Neovim – Quick summary
Standing now if you are lured by the new prospects of Neo-vim but not sure about whether to switch from the age-old and trusted vim, here is a quick list of the differences between Neo-vim and vim and as of now.
|Point of difference||Vim||Neovim|
|Current stable Version||8.2||0.4.4|
|Extensible||Less Extensible||More Extensible|
|LSP support||Depends on other plugins||Inbuilt|
|Support with other software||No||In the development version|
Differences between Vim vs Neovim
Let us dive into more details about these differences.
1. Developer Community
Though both Vim vs Neovim are open-sourced projects and are hosted over GitHub there is a significant difference between how they developed. Large open-source projects are often backed up by a community of developers that support and develop the project together.
This has not been the case for vim in recent years. For a long period of time, developers from all around the world have contributed to Vim. But now Bram Moolenaar has been acting like a gatekeeper strictly controlling what features are to be added to vim.
NeoVim now is more of a community-powered project, with contributions still coming in from a variety of people. The user base and the developer base are pretty small compared to vim but it is an actively growing project.
In terms of features, Vim 8 and the current stable version of Neo-vim 4.0 are equal. Bram has been working very hard to include the features such as an inbuilt terminal, asynchronous support, etc. in Vim too after they were widely accepted by the vim community when Neo-Vim brought it out of the box.
This scenario is supposed to change with the advent of Neo-Vim 5.0. Neovim 5.0 has been around the corner for a while now. It will bring native Lua support to the Neo-Vim and upgraded support for LSP discussed in the article.
Neovim has been a pretty recent development on the other hand Vim has been there for a much longer time. A time where modular and extensible code was not a priority. So vim’s codebase is more convoluted and interconnected making it difficult to the addition of newer features.
Neo-Vim apparently did not make the same mistake. Neo-vim is modular and highly extensible as you would want a modern piece of software to be.
4. Language Server Protocol
“A Language Server is meant to provide the language-specific smarts and communicate with development tools over a protocol that enables inter-process communication. The idea behind the Language Server Protocol (LSP) is to standardize the protocol for how such servers and development tools communicate. “
LSP is meant to provide better and more useful language insight into our code. Vim auto-complete plugins barely do the work when it comes to intricate language details. Support for LSP is one of the major lines of difference between the terminal gods and electron-based editors such as vs-Code.
Language servers Protocol support comes out of the box with Neo-Vim and usage with Lua makes it a lot more usable and highly customizable. Vim on the other hand officially does not support LSP still requires third-party plugins to be installed.
The comparison of software maturity is a bit complicated in this case. Neo-Vim is a fork of Vim so it is expected to have all the previous features of Vim except Vim has been hugely refactored for good in recent years.
Vim currently stands at v8.2(stable version) and Neo-Vim stands at v0.4.4. Vim is the software where you are more likely to bump into legacy code and on the other hand, Neo-Vim is still a large step away from the software it promises to be.
6. Embedding in another program
Vim key bindings are very popular because of its ergonomics and flexibility. More than often users want vim-like movement inside an editor, browser, etc. because it simply life easier.
A significant amount of effort has been put into making plugins that will allow vim like movements. Some of the notable ones are Vim for vs Code, Vimium for Chrome, Tridactyl for Firefox, etc. But these plugins lack one very important thing – originality. They are not vim. They just try to emulate how vim should behave.
Neo-vim 5 will make vim interactions easier with other top-layer software by allowing direct calls to the neo-vim. This is partly possible due to Neo-Vim’s built-in support for the Lua language. Thus Neo-vim is expected to make life easier for vim users who want vim/nvim shortcuts outside vim.
Features differences between Vim and Neo-Vim currently does not last for more than few months( except few core differences). All thanks to Bram who took it upon himself to keep Vim as no 1. If you are looking for a terminal editor to begin with neovim and vim does not make a difference. Neo-Vim makes the cut in terms of more modern usage. It will be interesting to follow where this software rivalry takes us. Till then stay tuned for more such articles.