Neovim 0.4 ื–ืžื™ืŸ, ื’ืจืกื” ืžื•ื“ืจื ื™ืช ืฉืœ ืขื•ืจืš Vim

ื™ืฆื ืœืื•ืจ ืฉื—ืจื•ืจ ื ืื‘ื™ื 0.4, ืžื–ืœื’ ืžืขื•ืจืš Vim, ืžึฐืจื•ึผื›ึผึธื– ืขืœ ื”ื’ื‘ืจืช ื”ื”ืจื—ื‘ื” ื•ื”ื’ืžื™ืฉื•ืช. ืคื™ืชื•ื—ื™ื ืžืงื•ืจื™ื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ื”ืชืคืฉื˜ื•ืช ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0, ื•ื”ื—ืœืง ื”ื‘ืกื™ืกื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ Vim.

ื‘ืžืกื’ืจืช ืคืจื•ื™ืงื˜ Neovim, ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ Vim ืขื•ื‘ืจ ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ื›ื‘ืจ ื™ื•ืชืจ ืžื—ืžืฉ ืฉื ื™ื, ื›ืชื•ืฆืื” ืžื›ืš ืžืชื‘ืฆืขื™ื ืฉื™ื ื•ื™ื™ื ื”ืžืคืฉื˜ื™ื ืืช ืชื—ื–ื•ืงืช ื”ืงื•ื“, ืžืกืคืงื™ื ืืžืฆืขื™ ืœื—ืœื•ืงืช ืขื‘ื•ื“ื” ื‘ื™ืŸ ืžืกืคืจ ืžืชื—ื–ืงื™ื, ืžืคืจื™ื“ื™ื ื‘ื™ืŸ ื”ืžืžืฉืง ืœ- ื—ืœืง ื‘ืกื™ืก (ื ื™ืชืŸ ืœืฉื ื•ืช ืืช ื”ืžืžืฉืง ืžื‘ืœื™ ืœื’ืขืช ื‘ื—ืœืง ื”ืคื ื™ืžื™) ื•ืœื™ื™ืฉื ื—ื“ืฉ ืืจื›ื™ื˜ืงื˜ื•ืจื” ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ืžื‘ื•ืกืก ืขืœ ืชื•ืกืคื™ื.

ืื—ืช ื”ื‘ืขื™ื•ืช ืขื Vim ืฉื”ื ื™ืขื” ืืช ื™ืฆื™ืจืช Neovim ื”ื™ื™ืชื” ื‘ืกื™ืก ื”ืงื•ื“ ื”ืžื ื•ืคื— ื•ื”ืžื•ื ื•ืœื™ื˜ื™ ืฉืœื•, ื”ืžื•ืจื›ื‘ ืžื™ื•ืชืจ ืž-300 ืืœืฃ ืฉื•ืจื•ืช ืฉืœ ืงื•ื“ C (C89). ืจืง ืื ืฉื™ื ืžืขื˜ื™ื ืžื‘ื™ื ื™ื ืืช ื›ืœ ื”ื ื™ื•ืื ืกื™ื ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ Vim, ื•ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ื ืฉืœื˜ื™ื ืขืœ ื™ื“ื™ ืžืชื—ื–ืง ืื—ื“, ืžื” ืฉืžืงืฉื” ืขืœ ืชื—ื–ื•ืงื” ื•ืฉื™ืคื•ืจ ืฉืœ ื”ืขื•ืจืš. ื‘ืžืงื•ื ื”ืงื•ื“ ื”ืžื•ื‘ื ื” ื‘ืœื™ื‘ืช Vim ืœืชืžื™ื›ื” ื‘-GUI, Neovim ืžืฆื™ืขื” ืœื”ืฉืชืžืฉ ื‘ืฉื›ื‘ื” ืื•ื ื™ื‘ืจืกืœื™ืช ื”ืžืืคืฉืจืช ืœื™ืฆื•ืจ ืžืžืฉืงื™ื ื‘ืืžืฆืขื•ืช ืขืจื›ื•ืช ื›ืœื™ื ืฉื•ื ื•ืช.

ืชื•ืกืคื™ื ืขื‘ื•ืจ Neovim ืžื•ืฉืงื™ื ื›ืชื”ืœื™ื›ื™ื ื ืคืจื“ื™ื, ืœืื™ื ื˜ืจืืงืฆื™ื” ืื™ืชื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืคื•ืจืžื˜ MessagePack. ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืชื•ืกืคื™ื ืžืชื‘ืฆืขืช ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™, ืžื‘ืœื™ ืœื—ืกื•ื ืืช ื”ืจื›ื™ื‘ื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœ ื”ืขื•ืจืš. ื›ื“ื™ ืœื’ืฉืช ืœืชื•ืกืฃ, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืงืข TCP, ื›ืœื•ืžืจ. ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ื”ืชื•ืกืฃ ืขืœ ืžืขืจื›ืช ื—ื™ืฆื•ื ื™ืช. ื‘ืžืงื‘ื™ืœ, Neovim ื ืฉืืจืช ืชื•ืืžืช ืœืื—ื•ืจ ืขื Vim, ืžืžืฉื™ื›ื” ืœืชืžื•ืš ื‘-Vimscript (Lua ืžื•ืฆืขืช ื›ื—ืœื•ืคื”) ื•ืชื•ืžื›ืช ื‘ื—ื™ื‘ื•ืจื™ื ืœืจื•ื‘ ื”ืชื•ืกืคื™ื ื”ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœ Vim. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื•ืช ื”ืžืชืงื“ืžื•ืช ืฉืœ Neovim ื‘ืชื•ืกืคื™ื ืฉื ื‘ื ื• ื‘ืืžืฆืขื•ืช ืžืžืฉืงื™ API ืกืคืฆื™ืคื™ื™ื ืœ- Neovim.

ื›ื‘ืจ ื‘ื”ื•ื•ื” ืžื•ึผื›ึธืŸ ื›-80 ืชื•ืกืคื™ื ืกืคืฆื™ืคื™ื™ื, ื›ืจื™ื›ื•ืช ื–ืžื™ื ื•ืช ืœื™ืฆื™ืจืช ืชื•ืกืคื™ื ื•ื”ื˜ืžืขืช ืžืžืฉืงื™ื ื‘ืืžืฆืขื•ืช ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) ื•ืžืกื’ืจื•ืช (Qt5, ncurses, Node.js, ืืœืงื˜ืจื•ืŸ, GTK+). ืžืคืชื—ื™ื ืžืกืคืจ ืืคืฉืจื•ื™ื•ืช ืžืžืฉืง ืžืฉืชืžืฉ. ืชื•ืกืคื•ืช GUI ื“ื•ืžื•ืช ืžืื•ื“ ืœืชื•ืกืคื™ื, ืื‘ืœ ื‘ื ื™ื’ื•ื“ ืœืชื•ืกืคื™ื, ื”ื ื™ื•ื–ืžื™ื ืงืจื™ืื•ืช ืœืคื•ื ืงืฆื™ื•ืช ืฉืœ Neovim, ื‘ืขื•ื“ ืฉืชื•ืกืคื™ื ื ืงืจืื™ื ืžืชื•ืš Neovim.

ื—ืœืง ืžื”ืฉื™ื ื•ื™ื™ื ื‘ ื’ืจืกื” ื—ื“ืฉื”:

  • ื”ื•ืกื™ืฃ ื—ืœืง ื’ื“ื•ืœ ืฉืœ ืคื•ื ืงืฆื™ื•ืช API ื—ื“ืฉื•ืช ื•ืื™ืจื•ืขื™ ืžืžืฉืง ืžืฉืชืžืฉ.
  • ื ื•ืกืคื” ืกืคืจื™ื™ื” ืกื˜ื ื“ืจื˜ื™ืช ื—ื“ืฉื” Nvim-Lua ืœืคื™ืชื•ื— ืชื•ืกืคื™ื ื‘ืฉืคืช Lua.
  • ื”ืคื™ืชื•ื— ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ ืžืžืฉืง ื”ืžืฉืชืžืฉ ื ืžืฉืš, ืชื•ืš ืขื“ื›ื•ืŸ ืžื™ื“ืข ืขืœ ื”ืžืกืš ื‘ืจืžืช ื”ืฉื•ืจื•ืช, ื•ืœื ื‘ืชื•ื•ื™ื ื‘ื•ื“ื“ื™ื.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื—ืœื•ื ื•ืช ืฆืคื™ื ืžืŸ ื”ืžื ื™ื™ืŸ, ืื•ืชื ื ื™ืชืŸ ืœืžืงื ื‘ื›ืœ ืžื™ืงื•ื, ืœืฆืจืฃ ืื•ืชื, ืœืงืฉืจ ืœืžืื’ืจื™ ืขืจื™ื›ื” ื‘ื•ื“ื“ื™ื ื•ืœืงื‘ืฅ ืื•ืชื ื‘ืžืฆื‘ Multigrid.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช 'pumblend' ืขื‘ื•ืจ ืชืคืจื™ื˜ื™ื ื ืคืชื—ื™ื ืฉืงื•ืคื™ื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”