ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ Π»Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Vim 9.0. ΠΠΎΠ΄ Vim ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ»Π΅ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Ρ GPL ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠΎΠ΄. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Vim ΡΠ²ΡΠ·Π°Π½Π° Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ — ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Vim ΠΏΠΎΡΡΠΈΡΠ°Π΅Ρ ΡΡΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΠΎ ΡΠΈΠΏΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Vim ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π‘harityware, Ρ.Π΅. Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠ° ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π° Π½ΡΠΆΠ΄Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π°Π²ΡΠΎΡΡ Vim ΠΏΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π»ΡΠ±ΡΡ ΡΡΠΌΠΌΡ Π½Π° Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π Vim 9 ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² — Vim9 Script, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΊ JavaScript, TypeScript ΠΈ Java. ΠΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ ΡΡΠ°ΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π². ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ ΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° — ΡΡΠ°ΡΡΠΉ ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ.
ΠΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π² Vim9 Script ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. Π ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΡΡ ΡΠ΅ΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² 10-100 ΡΠ°Π·. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Vim9 Script ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡΠ°Ρ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ «def» ΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΈΠΏΠΎΠ². ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ «var» Ρ ΡΠ²Π½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ°.
Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°. ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° «call», Π° Π΄Π»Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ «let». Π£ΠΏΡΠΎΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ «#» Π²ΠΌΠ΅ΡΡΠΎ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ. Π Π±ΡΠ΄ΡΡΠΈΡ Π²ΡΠΏΡΡΠΊΠ°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ².
Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
- Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ Π½Π°Π±ΠΎΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΡΡ Π΅ΠΌ.
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ: ‘autoshelldir’, ‘cdhome’, ‘cinscopedecls’, ‘guiligatures’, ‘mousemoveevent’, ‘quickfixtextfunc’, ‘spelloptions’, ‘thesaurusfunc’, ‘xtermcodes’.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: argdedupe, balt, def, defcompile, disassemble, echoconsole, enddef, eval, export, final, import, var ΠΈ vim9script.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π²ΠΎ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ (popup-terminal) ΠΈ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ LSP (Language Server Protocol).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Haiku.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru