ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Neovim 0.6.0, ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° ΡƒΡ€Π΅Π΄Π½ΠΈΠΊΠΎΡ‚ Vim

ОбјавСн Π΅ Neovim 0.6.0, Π²ΠΈΠ»ΡƒΡˆΠΊΠ° Π½Π° ΡƒΡ€Π΅Π΄Π½ΠΈΠΊΠΎΡ‚ Vim фокусиран Π½Π° Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° СкстСнзибилноста ΠΈ флСксибилноста. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ ја ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°ΡˆΠ΅ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ Π½Π° Vim повСќС ΠΎΠ΄ сСдум Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΡˆΡ‚ΠΎ сС ΠΏΡ€Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΈ Π³ΠΎ поСдноставуваат ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ срСдства Π·Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‚ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Ρ‡ΠΈ, ΠΎΠ΄Π²ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ ΠΎΠ΄ основниот Π΄Π΅Π» (ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΈΡ€Π°ΡšΠ΅ Π½Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Π΄Π΅Π»ΠΎΠ²ΠΈ) ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π½ΠΎΠ²Π° СкстСнзивна Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π²Ρ€Π· основа Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ‚ Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° Apache 2.0, Π° основниот Π΄Π΅Π» Π΅ дистрибуиран ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° Vim. Π“ΠΎΡ‚ΠΎΠ²ΠΈ склопови сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π·Π° Linux (appimage), Windows ΠΈ macOS.

Π•Π΄Π΅Π½ ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ со Vim ΡˆΡ‚ΠΎ Π³ΠΎ ΠΏΠΎΡ‚Ρ‚ΠΈΠΊΠ½Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Neovim бСшС Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π½Π°Π΄ΡƒΠ΅Π½Π°, ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π° Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄, која сС состои ΠΎΠ΄ повСќС ΠΎΠ΄ 300 илјади Π»ΠΈΠ½ΠΈΠΈ C (C89) ΠΊΠΎΠ΄. Π‘Π°ΠΌΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π»ΡƒΡ“Π΅ Π³ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π°Ρ‚ ситС нијанси Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Vim, Π° ситС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ Π΅Π΄Π΅Π½ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°Ρ‡, ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΡ‚Π΅ΠΆΠ½ΡƒΠ²Π° ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΡƒΡ€Π΅Π΄Π½ΠΈΠΊΠΎΡ‚. НамСсто ΠΊΠΎΠ΄ΠΎΡ‚ Π²Π³Ρ€Π°Π΄Π΅Π½ Π²ΠΎ Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ Π½Π° Vim Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° GUI, Neovim ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ слој кој Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ.

ΠŸΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅ Π·Π° Neovim сС стартуваат ΠΊΠ°ΠΊΠΎ посСбни процСси, Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со која сС користи Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ MessagePack. Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° со ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅ сС Π²Ρ€ΡˆΠΈ асинхроно, Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅ Π½Π° основнитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ΡƒΡ€Π΅Π΄Π½ΠΈΠΊΠΎΡ‚. Π—Π° пристап Π΄ΠΎ Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊΠΎΡ‚, ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи TCP ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ, Ρ‚.Π΅. ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ систСм. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Neovim останува Π½Π°Π½Π°Π·Π°Π΄ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π΅Π½ со Vim, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Vimscript (Lua сС Π½ΡƒΠ΄ΠΈ ΠΊΠ°ΠΊΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°) ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° врски Π·Π° ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ стандардни Vim ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ. НапрСднитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Neovim ΠΌΠΎΠΆΠ΅ Π΄Π° сС користат Π²ΠΎ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ со помош Π½Π° API спСцифични Π·Π° Neovim.

Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², вСќС сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΎΠΊΠΎΠ»Ρƒ 130 спСцифични ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ, достапни сС врски Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ програмски Ρ˜Π°Π·ΠΈΡ†ΠΈ (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ΠΈ Ρ€Π°ΠΌΠΊΠΈ (Qt, ncurses, Јазол .js, Π•Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½, GTK). Π‘Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π°Ρ‚ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ. Π”ΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π·Π° GUI сС ΠΌΠ½ΠΎΠ³Ρƒ слични Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅, Π½ΠΎ Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅, Ρ‚ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Neovim, Π΄ΠΎΠ΄Π΅ΠΊΠ° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅ сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚Π° Π½Π° Neovim.

НСкои ΠΎΠ΄ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎ Π½ΠΎΠ²Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°:

  • Π’ vim-скрипты Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ скриптом.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка Lua для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈ управлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ. Π’ vim-скриптах Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° Lua-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ прСфикса v:lua (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«arg1->v:lua.somemod.func(arg2)Β»).
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности встроСнного LSP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Language Server Protocol), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для выноса Π»ΠΎΠ³ΠΈΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ автодополнСния ΠΊΠΎΠ΄Π° Π½Π° внСшниС сСрвСры. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ LSP позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 150 Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° Visual Studio Code.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ срСдства диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° тСкста диагностичСских сообщСний ΠΈ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½ с ΠΊΠΎΠ΄ΠΎΠΌ, связанным с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ сообщСниями. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° диагностичСских сообщСний, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… LSP-сСрвСром.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Ρ‹Π²ΠΎΠ΄Π° Π±Π»ΠΎΠΊΠΎΠ² со слуТСбной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ.
  • ВнСсСны Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, задСйствована Ρ…ΡΡˆ Ρ‚Π°Π±Π»ΠΈΡ†Π° для подсвСчиваСмых ΠΈΠΌΡ‘Π½ Π³Ρ€ΡƒΠΏΠΏ.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Windows 7 ΠΈ 32-разрядных сборок для Windows.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€