A lot of people have been asking about customizing Neovim from scratch, so from this article we’re going to start a series of five articles to share with you everything I learned about Neovim .
To follow this series, I think it would be very important for you to have a basic knowledge of Vim, Neovim and Lua . I suggest the links below:
Neovim solved a Vim “slowness” issue regarding the use of plugins . And the main reason for this was to deliver to the Lua programming language all: calculations, filtering, checks and others, because Vimscript is not a very fast language, because it, until then, was made without optimizations just to run basic tasks.
But things grew and there came a point that she became a “stone in the shoe” of Vim . Soon, Neovim appeared in order to solve this problem. In other words, in order not to “reinvent the wheel” and have to change the entire Vimscript (which would be a lot of work) a language was adopted that already has all the necessary optimizations, which is the Lua programming language.
If you want more details about this I suggest this talk by Justin M. Keyes (current Neovim Leader and Maintainer) which was given at VimConf of 2019.
Vim has several API’s that serve the same purpose and they were expanded by Neovim programmers in order to make data manipulation by Lua even easier. We’ll see more details, from scratch, on how this happens in the next article. But after the tests, the benchmarks and the use itself, it was noticed a MUCH difference in terms of speed.
We are going to customize DO ZERO all our Neovim in an original way without using a distro. Using the best plugins for different situations and creating our own code for particular situations, hence the need to have a basic knowledge of Lua .