In this article, we’ll learn the differences between Neovim vs Vim. 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. It even supports syntax highlighting.
Neovim is a fork of vim which appeared on the open-source horizon around 2014. Neovim, 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 Neovim came along) and obviously Neovim.
Vim vs Neovim – Quick summary
Standing now if you are lured by the new prospects of Neovim but not sure about whether to switch from the age-old and trusted vim, here is a quick list of the differences between Neovim 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.
2. Features
In terms of features, Vim 8 and the current stable version of Neovim 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 Neovim brought it out of the box.
This scenario is supposed to change with the advent of Neovim 5.0. Neovim 5.0 has been around the corner for a while now. It will bring native Lua support to the Neovim and upgraded support for LSP discussed in the article.
3. Extensibility
Neovim has been a pretty recent development, on the other hand, Vim has been there for a much longer time. A time when modular and extensible code was not a priority. So vim’s codebase is more convoluted and interconnected, making it difficult for the addition of newer features.
Neovim 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 plugin barely does 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
This Protocol support comes out of the box with Neovim, 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.
5. Maturity
The comparison of software maturity is a bit complicated in this case. Neovim 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 Neovim 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 Visual Studio 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.
Neovim 5 will make vim interactions easier with other top-layer software by allowing direct calls to the Neovim. This is partly possible due to Neovim’s built-in support for the Lua programming language. Thus, Neovim is expected to make life easier for vim users who want Vim or Neovim shortcuts outside vim.
Conclusion
Features differences between Vim and Neovim 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.
There is objectively no best text editor, you have to figure out what’s the best editor for you and your productivity. Neovim has certainly a lot of advantages over vim, and it is also compatible with the vim plugins. However, you can use Neovim if you are a long vim user or just give Vim a try if you are a regular Nano user.