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

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

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

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

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

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

  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ LSP αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ (Language Server Protocol) αž“αŸ…αž€αŸ’αž“αž»αž„ Lua αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαžΆαž„αž€αŸ’αžšαŸ…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚ αž“αž·αž„αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž›αŸαžαž€αžΌαžŠαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ API αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαžšαž…αž“αžΆαž“αŸƒαž”αžŽαŸ’αžαž»αŸ†αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ API αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαžŸαŸ’αž›αžΆαž€αž”αž“αŸ’αžαŸ‚αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αž˜αŸ’αžšαž·αžαž”αŸƒαŸ”
  • αž”αžΆαž“αž–αž„αŸ’αžšαžΈαž€αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Lua αž‡αžΆαž—αžΆαžŸαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž“αž·αž„αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž–αž·αžŸαŸ„αž’αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‰αŸ‚αž€αžŠαžΎαž˜αžˆαžΎαŸ”

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

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