Kaks ja pool aastat kestnud arendustöö on lõpuks viinud Vim 9.0 tekstitöötlustarkvara väljaandmiseni. Vim'i kood on levitatud selle enda copyleft litsentsi alusel, mis on kooskõlas GPL-iga ning võimaldab koodi kasutada, jagada ja muuta piiranguteta. Vim'i litsentsi peamine eripära on seotud muudatuste tagastamisega — kolmandate osapoolte toodetes rakendatud täiustused peavad olema tagastatud algsesse projekti, kui Vim'i hoolsuskaitse peab neid täiustusi tähelepanuväärseteks ja saadab sellekohase taotluse. Vim kuulub Charityware tüüpi levitamise alla, st tarkvara müümise või projekti jaoks annetuste kogumise asemel paluvad Vim'i autorid, et kasutajad toetaksid heategevust, kui programm neile meeldib.
Vim 9 toob uue skriptimise ja pistikprogrammide arendamise keele — Vim9 Script, mis pakub süntaksit, mis on lähedane JavaScriptile, TypeScriptele ja Javale. Uus süntaks on algajatele lihtsam omandada, kuid ei ole tagasiülene ühilduv vana skriptikeelega. Samas säili täielikult vanade keele ja olemasolevate pistikprogrammide ning skriptide toetamine — nii vana kui ka uus keel on paralleelselt toetatud. Vanade keelte toetamise lõpetamine ei ole plaanis.
Lisaks süntaksi ümbersuunamisele on Vim9 Scriptis rakendatud kompileeritavate funktsioonide tuge, mis võimaldab oluliselt suurendada jõudlust. Tehtud testides võimaldasid baidikoodiks kompileeritud funktsioonid skriipti täitmise kiirusel kasvada 10-100 korda. Lisaks on Vim9 Scriptis lõpetatud funktsioonide argumentide töötlemine assotsieerunud massiivide kaudu, mis tõi endaga kaasa suured kulud. Funktsioonid määratletakse nüüd väljendi "def" abil ja nõuavad selget argumentide loetelu ja tagastatavaid tüüpe. Muutujad määratletakse väljendi "var" abil koos tüübi selge näitamisega.
Väljendite jagamine mitmele reale ei nõua enam tagasiviivide kasutamist. Veahaldamise mehhanism on täielikult ümber tehtud. Funktsioonide käivitamiseks ei ole vajalik sõna 'call' määramine ja väärtuste määramiseks 'let'. Moodulite loomine on lihtsustatud — lisatud on võimalus eksportida eraldi funktsioone ja muutujaid teiste failide kasutamiseks. Kommenteerimine toimub sümboliga '#' asemel kaheteistkümne jutumärgi asemel. Tulevastes väljaannetes on kavas lisada klasside tugi.
Teiste muudatuste seas:
- Komplekti on lisatud värviskeemide kogum.
- Parandatud on õigekirjakontrolli ja sisendi automaatse täitmise tuge.
- Lisatud on uued seadistused: 'autoshelldir', 'cdhome', 'cinscopedecls', 'guiligatures', 'mousemoveevent', 'quickfixtextfunc', 'spelloptions', 'thesaurusfunc', 'xtermcodes'.
- Lisatud on uued käsud: argdedupe, balt, def, defcompile, disassemble, echoconsole, enddef, eval, export, final, import, var ja vim9script.
- Pakutud on võimalust avada terminal hüpikaknas (popup-terminal) ja valida terminali värviskeem.
- Lisatud on kanalirežiim koostööks serveriga LSP (Language Server Protocol).
- Lisatud on Haiku operatsioonisüsteemi tugi.
Allikas: opennet.ru
