Neovim 0.4 αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž‡αžΆαž€αŸ†αžŽαŸ‚αž‘αŸ†αž“αžΎαž”αž€αž˜αŸ’αž˜αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’ Vim

αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™ αž€αžΆαžšαžŠαŸ„αŸ‡αž›αŸ‚αž„ Neovim 0.4αž•αŸ’αž›αžΌαžœαž”αŸ†αž”αŸ‚αž€αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’ Vim, αž•αŸ’αžαŸ„αž αž›αžΎαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž€αžΆαžšαž–αž„αŸ’αžšαžΈαž€αž“αž·αž„αž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αŸ” αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαžΎαž˜αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ αž€αžΆαžšβ€‹αž†αŸ’αž›αž„β€‹αžšαžΆαž›αžŠαžΆαž› αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Apache 2.0 αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ Vim αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„ Neovim αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ Vim αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΎαž„αžœαž·αž‰αž’αžŸαŸ‹αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž„ 5 αž†αŸ’αž“αžΆαŸ†αž˜αž€αž αžΎαž™ αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αžŠαŸ‚αž›αžŸαž˜αŸ’αžšαž½αž›αžŠαž›αŸ‹αž€αžΆαžšαžαŸ‚αžšαž€αŸ’αžŸαžΆαž€αžΌαžŠ αž•αŸ’αžαž›αŸ‹αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž“αŸƒαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž€αž˜αŸ’αž›αžΆαŸ†αž„αž–αž›αž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž’αŸ’αž“αž€αžαŸ‚αž‘αžΆαŸ†αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ†αž”αŸ‚αž€αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž–αžΈ αž•αŸ’αž“αŸ‚αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ (αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ‰αŸ‡αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αž“αž»αž„) αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαžαŸ’αž˜αžΈαŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž’αžΆαž…αž–αž„αŸ’αžšαžΈαž€αž”αžΆαž“αŸ” αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αŸ”

αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™ Vim αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ†αžšαž»αž‰αž±αŸ’αž™αž˜αžΆαž“αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž Neovim αž‚αžΊαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ monolithic αžšαž”αžŸαŸ‹αžœαžΆαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΌαžŠ C (C300) αž‡αžΆαž„ 89 αž–αžΆαž“αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ” αž˜αžΆαž“αž˜αž“αž»αžŸαŸ’αžŸαžαŸ‚αž–αžΈαžšαž”αžΈαž“αžΆαž€αŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž™αž›αŸ‹αž’αŸ†αž–αžΈαž—αžΆαž–αžαž»αžŸαž”αŸ’αž›αŸ‚αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ Vim αž αžΎαž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž’αŸ’αž“αž€αžαŸ‚αž‘αžΆαŸ†αž˜αŸ’αž“αžΆαž€αŸ‹ αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆ αž“αž·αž„αž€αŸ‚αž›αž˜αŸ’αž’αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’αŸ” αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž“αžΌαž› Vim αžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΆαŸ†αž‘αŸ’αžš GUI Neovim αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αŸ’αžšαžΎαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αžŸαž€αž›αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαž’αž”αŸ‹αž§αž”αž€αžšαžŽαŸαž•αŸ’αžŸαŸαž„αŸ—αŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Neovim αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž‘αž˜αŸ’αžšαž„αŸ‹ MessagePack αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ” αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž’αžŸαž˜αž€αžΆαž› αžŠαŸ„αž™αž˜αž·αž“αžšαžΆαžšαžΆαŸ†αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΌαž›αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αžšαž“αŸ’αž’ TCP αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αž–αŸ„αž›αž‚αžΊαž§αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž„αž€αŸ’αžšαŸ…αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ Neovim αž“αŸ…αžαŸ‚αž’αžΆαž…αž”αŸ’αžšαžΎαž‡αžΆαž˜αž½αž™ Vim αž”αž“αŸ’αžαž‚αžΆαŸ†αž‘αŸ’αžš Vimscript (Lua αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž˜αž½αž™) αž“αž·αž„αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ Vim αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ” αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžšαž”αžŸαŸ‹ Neovim αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž”αŸ’αžšαžΎ APIs αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžšαž”αžŸαŸ‹ Neovim αŸ”

αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžšαž½αž…αž αžΎαž™ αžšαŸ€αž”αž…αŸ† αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž› 80 αž€αžΆαžšαž…αž„αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ— (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) αž“αž·αž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒ (Qt5, ncurses, Node.js, αž’αŸαž‘αž·αž…αžαŸ’αžšαž»αž„, GTK+) αŸ” αž‡αž˜αŸ’αžšαžΎαžŸαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αžαŸ‚αž˜ GUI αž‚αžΊαžŠαžΌαž…αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αžŠαžΌαž…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‘αŸ αž–αž½αž€αž‚αŸαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž αŸ…αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αž»αžαž„αžΆαžš Neovim αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αž–αžΈαžαžΆαž„αž€αŸ’αž“αž»αž„ Neovim αŸ”

αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„ αž€αŸ†αžŽαŸ‚β€‹αžαŸ’αž˜αžΈ:

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž•αŸ’αž“αŸ‚αž€αž’αŸ†αž“αŸƒαž˜αž»αžαž„αžΆαžš API αžαŸ’αž˜αžΈ αž“αž·αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžαŸ’αž˜αžΈ Nvim-Lua αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž‡αžΆαž—αžΆαžŸαžΆ Lua αŸ”
  • αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸƒαž–αž·αž’αžΈαž€αžΆαžšαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž“αŸ…αžαŸ‚αž”αž“αŸ’αž αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž–αŸαžαŸŒαž˜αžΆαž“αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž”αž“αŸ’αž‘αžΆαžαŸ‹ αž‡αžΆαž‡αžΆαž„αžαž½αž’αž€αŸ’αžŸαžšαž“αžΈαž˜αž½αž™αŸ—αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž’αž½αž…αž’αžŽαŸ’αžαŸ‚αžαž‘αžΉαž€αž–αŸαž‰αž›αŸαž‰ αžŠαŸ‚αž›αž’αžΆαž…αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž‘αžΈαžαžΆαŸ†αž„αžŽαžΆαž˜αž½αž™ αž—αŸ’αž‡αžΆαž”αŸ‹ αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž”αž»αž‚αŸ’αž‚αž› αž“αž·αž„αžŠαžΆαž€αŸ‹αž‡αžΆαž€αŸ’αžšαž»αž˜αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž–αž αž»αž€αŸ’αžšαž‘αžΆαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ 'pumblend' αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΊαž“αž»αž™αž‘αž˜αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αžαŸ’αž›αžΆαŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹