The launch of the new version of Neovim 0.4 has been presented which is a branch of the Vim editor that focuses on increasing extensibility and flexibility.
For those who are unfamiliar with the Neovim project, they should know whate this one has been reworking the Vim code base for more than five years, as a result of which changes have been made to simplify code maintenance, providing means to divide the work between several maintainers, separating the interface from the base (the interface can be changed without touching the interior) and implementing a new extensible architecture based on plugins.
From the Vim problems that led to the creation of Neovim consisting of more than 300 thousand lines of C code. Only a few people understand all the nuances of the Vim code base and all changes are controlled by a maintainer, making it difficult to maintain and work to improve the editor.
Instead of code embedded in the Vim core to support the GUI, Neovim proposes to use a universal layer that allows you to create interfaces using various toolkits.
Plugins for Neovim run as separate processes, for which the MessagePack format is used. Interaction with plugins is done in asynchronous mode, without blocking the basic components of the editor.
To access the plugin, a TCP socket can be used, i.e. The plugin can be run on an external system.
At the same time, Neovim is still backward compatible with Vim, continues to support Vimscript (as an alternative to Lua) and supports plug-in of most standard Vim plugins. Neovim's advanced features can be used in plugins created with the Neovim-specific API.
About 80 specific plugins have already been prepared, there are folders available to create plugins and interface implementations using various programming languages (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) and frameworks (Qt5 , ncurses, Node .js, Electron, GTK +). Various user interface options are being developed.
GUI plug-ins are very similar to plug-ins, but unlike plug-ins, they initiate calls to Neovim functions, whereas plug-ins are called from Neovim.
The original developments of the project are distributed under the Apache 2.0 license, and the base part under the Vim license.
Main news of Neovim 0.4
With the release of this new version of Neovim 0.4 Much of the new API functions and UI events have been added to the application.
In addition to that it is also highlighted that added a new standard Nvim-Lua library to develop plugins in the Lua language.
On the other hand, the development of the user interface protocol continues, which updates the information on the screen at the line level, instead of individual characters.
And that also in Neovim 0.4 added support for full floating windows that can be placed anywhere, attached, linked to individual edit buffers, grouped in Multigrid mode.
Now for the installation case of this new version in Linux, andIt is important to emphasize that Neovim is within the majority from the repositories of the most popular distributions.
Though the only problem at the moment is that the new version has not been updated yet in the repositories of most Linux distributions.
As currently only Arch Linxu and its derivatives they already have the availability of this package.
To install on Arch and derivatives, they only have to open a terminal and in it they will type the following command:
sudo pacman -S neovim
While for those who are users of Debian, Ubuntu and derivatives can install the new package as soon as it is available executing in the terminal the command:
sudo apt install neovim
In the case of those who are users of Fedora and derivatives:
sudo dnf install neovim
sudo zypper install neovim
Finally for Gentoo users
emerge -a app-editors/neovim