ДостапСн Π΅ Neovim 0.5, ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° ΡƒΡ€Π΅Π΄Π½ΠΈΠΊΠΎΡ‚ Vim

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

Π•Π΄Π΅Π½ ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ со 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.

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

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½ LSP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (Ρ˜Π°Π·ΠΈΡ‡Π΅Π½ сСрвСр ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ») Π²ΠΎ Lua, кој ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ со Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ услуги Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ΄.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ API Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Π΄ΠΈΠ·Π°Ρ˜Π½ΠΎΡ‚ Π½Π° Π±Π°Ρ„Π΅Ρ€ΠΈΡ‚Π΅ Π·Π° распрСдСлба.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ API Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΈ ΠΎΠ·Π½Π°ΠΊΠΈ Π·Π° слСдСњС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π±Π°Ρ˜Ρ‚.
  • ΠŸΡ€ΠΎΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Lua ΠΊΠ°ΠΊΠΎ јазик Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ ΠΈ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚ Π·Π° ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Ρ€Π²Π°.

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

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