Release of text editor Vim 9.0

After two and a half years of development, the text editor Vim 9.0 was released. The Vim code is distributed under its own copyleft license, compatible with the GPL and allowing unlimited use, distribution and reworking of the code. The main feature of the Vim license is related to the reversion of changes - improvements implemented in third-party products must be transferred to the original project if the Vim maintainer considers these improvements worthy of attention and submits a corresponding request. By distribution type, Vim is classified as Charityware, i.e. Instead of selling the program or collecting donations for the needs of the project, the authors of Vim ask to donate any amount to charity if the user likes the program.

Vim 9 offers a new language for developing scripts and plugins - Vim9 Script, which provides syntax similar to JavaScript, TypeScript and Java. The new syntax is easier for beginners to learn, but is not backward compatible with the old scripting language. At the same time, support for the previously used language and compatibility with existing plugins and scripts are fully preserved - the old and new languages ​​are supported in parallel. There are no plans to discontinue support for the old language.

In addition to reworking the syntax, Vim9 Script now supports compiled functions, which can significantly increase productivity. In the tests carried out, functions compiled into bytecode made it possible to increase the speed of script execution by 10-100 times. In addition, Vim9 Script no longer processes function arguments as associated arrays, which resulted in large overheads. Functions are now defined using a "def" expression and require an explicit list of arguments and return types. Variables are defined using a "var" expression with an explicit type indication.

Splitting expressions across multiple lines no longer requires the use of a backslash. The error handling mechanism has been completely redesigned. The keyword "call" is not required to run functions, but "let" is required for value assignments. The creation of modules has been simplified - the ability to export individual functions and variables for use in other files has been added. Comments are separated by a "#" character instead of double quotes. Class support is planned for future releases.

Among other changes:

  • A set of color schemes is included.
  • Improved support for spell checking and input completion.
  • Added new settings: 'autoshelldir', 'cdhome', 'cinscopedecls', 'guiligatures', 'mousemoveevent', 'quickfixtextfunc', 'spelloptions', 'thesaurusfunc', 'xtermcodes'.
  • Added new commands: argdedupe, balt, def, defcompile, disassemble, echoconsole, enddef, eval, export, final, import, var and vim9script.
  • It is possible to open the terminal in a pop-up window (popup-terminal) and select the color scheme of the terminal.
  • Added channel mode for interaction with the LSP (Language Server Protocol) server.
  • Added support for Haiku operating system.

Source: opennet.ru

Add a comment