Vim:
Vim is a highly configurable text editor that is improved version of the Vi text editor. It is shipped in almost all operating systems. Out of the box, Vim will look very plain as most of the features that make it stand out lie in the under the hood.
Referred to as a programmer's text editor, it can be used to edit text very efficiently, thanks to all of its usability features. However, it does require a steep learning curve as Vim has its own language with the help of which navigating through code can be made more efficient
Neo-vim:
Neo-vim can be considered as an extension of Vim, the same way Vim is an extension of Vi. The main goal of Neo-vim, as mentioned in the website, is to create an extension of Vim that takes the good parts of Vim, and continues to add more features.
The main difference:
Developers' community
Lua support
Default settings
LSP support
Extensibility
Developers' community:
While both Vim and Neo-vim are open source, and hosted on GitHub, development of Vim uses the benevolent dictator model. This means that while many developers from around the world are able to contribute to the development of Vim, the original developer, Bram Moolenaar acts as a gatekeeper, strictly controlling what features may be added.
Neo-vim on the other hand, uses a community powered approach, allowing a number of developers to be able to contribute towards its development. With this approach, the Neo-vim community adds features faster, some of which can be considered unconventional
Lua support:
VimScript is the language using which plugins for Vim are written in. However, VimScript is a challenging language to learn, and it can get very messy and hard to refactor (restructure the code). Moreover, VimScript can only be used for Vim plugins
Lua is a more general-purpose language, easier to learn and more powerful than VimScript. Being a simpler language than VimScript, it is easier to configure plugins and customize for Neo-vim. In addition to this, Lua is more modular, which can help for organizing of plugins, configurations, etc.
Default settings:
Vim, out of the box, has no configurations set. Users generally have to start from scratch, configuring the settings they require in order to use Vim properly.
Neo-vim, however, comes with a few basic settings configured by default, which saves users the trouble of having to manually configure them.
Few default settings include:
syntax highlighting
auto-indent
background (colour is set to dark by default)
LSP support:
Developed by Microsoft, Language Server Protocol (LSP) defines a protocol used between an editor or IDE and and a language server, in order to provide support or language features such as auto-complete, go to definition, find all references, etc.
Neo-vim comes with native LSP support and usage with Lua makes it highly customizable. Vim on the other hand, does not support LSP natively and requires third party plugins to be installed
Extensibility:
Vim has been around for much longer that Neo-vim, in a time where modularity and extensibility were not a priority. This led to Vim’s code-base becoming more convoluted and interconnected, which caused adding additional features increasingly difficult.
Neo-vim, on the other hand, is developed with modularity and extensibility in mind, allowing for greater customizability. Neo-vim can better handle additional plugins, additional settings and other extensions that users may add.
Conclusion:
The differences mentioned in this article, as well as other noticeable differences, do not last long, as both Vim and Neo-vim are always competing to keep improving. Besides, Neo-Vim would not have come into existence, unless Bram Moolenaar had not taken the first step to create Vim.
Whether you start using either terminal text editor does not make much of a difference since any personal preference will most likely arise after you get accustomed to using and configuring the various settings of these terminal text editors. Neo-vim is essentially most suitable for modern day usage....But Vim can arguably be considered as the OG of text editors !