ืžืขืœื“ื•ื ื’ ืคื•ืŸ Neovim 0.7.0, ืึท ืžืึทื“ืขืจื ื™ื™ื–ื“ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ Vim ืจืขื“ืึทืงื˜ืึธืจ

Neovim 0.7.0 ืื™ื– ื‘ืืคืจื™ื™ื˜, ืึท ื’ืึธืคึผืœ ืคื•ืŸ ื“ื™ Vim ืจืขื“ืึทืงื˜ืึธืจ ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ื™ื ืงืจื™ืกื™ื ื’ ืขืงืกื˜ืขื ืกื™ื‘ื™ืœื™ื˜ื™ ืื•ืŸ ื‘ื™ื™ื’ื™ืงื™ื™ึทื˜. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืฉื•ื™ืŸ ืจื™ื•ื•ืขืจืงื˜ ื“ื™ Vim ืงืึธื“ ื‘ืึทื–ืข ืคึฟืึทืจ ืžืขืจ ื•ื•ื™ ื–ื™ื‘ืŸ ื™ืึธืจ, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื•ื•ืึธืก ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ื•ื•ืึธืก ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ืงืึธื“ ื•ื™ืฉืึทืœื˜, ืฆื•ืฉื˜ืขืœืŸ ืึท ืžื™ื˜ืœ ืคื•ืŸ ื“ื™ื•ื•ื™ื™ื“ื™ื ื’ ืึทืจื‘ืขื˜ ืฆื•ื•ื™ืฉืŸ ืขื˜ืœืขื›ืข ืžืึทื™ื ื˜ืขืจื–, ื‘ืึทื–ื•ื ื“ืขืจ ื“ื™ ืฆื•ื‘ื™ื ื“ ืคื•ืŸ ื“ื™ ื‘ืึทื–ืข ื˜ื™ื™ืœ (ื“ื™ ืฆื•ื‘ื™ื ื“ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื˜ืฉื™ื™ื ื“ื–ืฉื“ ืึธืŸ ืจื™ืจื ื“ื™ืง ื“ื™ ื™ื ื˜ืขืจื ืึทืœืก) ืื•ืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ื ื™ื™ึทืข ืขืงืกื˜ืขื ืกื™ื‘ืœืข ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืœื•ื’ื™ื ืก. ื“ืขืจ ืึธืจื™ื’ื™ื ืขืœ ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื–ืขื ืขืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ Apache 2.0 ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ืื•ืŸ ื“ื™ ื™ืงืขืจื“ื™ืง ื˜ื™ื™ืœ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ Vim ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ืคืึทืจื˜ื™ืง ืึทืกืขืžื‘ืœื™ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืคึฟืึทืจ ืœื™ื ื•ืงืก (ืึทืคึผืคึผื™ืžืึทื’ืข), ื•ื•ื™ื ื“ืึธื•ื– ืื•ืŸ ืžืึทืงืึธืก.

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ืžื™ื˜ Vim ื•ื•ืึธืก ืคึผืจืึทืžืคึผื˜ื™ื“ ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ื ืขืึธื•ื•ื™ื ืื™ื– ื–ื™ื™ืŸ ื‘ืœืึธื•ื˜ื™ื“, ืžืึทื ืึทืœื™ื˜ื™ืง ืงืึธื“ ื‘ืึทื–ืข, ืงืึทื ืกื™ืกื˜ื™ื ื’ ืคื•ืŸ ืžืขืจ ื•ื•ื™ 300 ืฉื•ืจื•ืช ืคื•ืŸ C (C89) ืงืึธื“. ื‘ืœื•ื™ื– ืึท ื‘ื™ืกืœ ืžืขื ื˜ืฉืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทืœืข ื“ื™ ื ื•ืึทื ืกื™ื– ืคื•ืŸ ื“ื™ Vim ืงืึธื“ืขื‘ืึทืกืข, ืื•ืŸ ืึทืœืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืงืึทื ื˜ืจืึธื•ืœื“ ื“ื•ืจืš ืื™ื™ืŸ ืžืึทื™ื ื˜ืขืจืขืจ, โ€‹โ€‹ื•ื•ืึธืก ืžืื›ื˜ ืขืก ืฉื•ื•ืขืจ ืฆื• ื˜ื™ื™ึทื ืขืŸ ืื•ืŸ ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ืขื ืจืขื“ืึทืงื˜ืึธืจ. ืึทื ืฉื˜ืึธื˜ ื“ืขื ืงืึธื“ ื’ืขื‘ื•ื™ื˜ ืื™ืŸ ื“ื™ Vim ื”ืึทืจืฅ ืฆื• ืฉื˜ื™ืฆืŸ ื“ื™ GUI, Neovim ืœื™ื™ื’ื˜ ืึท ื•ื ื™ื•ื•ืขืจืกืึทืœ ืฉื™ื›ื˜ืข ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืžื™ื˜ ืคืึทืจืฉื™ื“ืŸ ื˜ืึธืึธืœืงื™ืฅ.

ืคึผืœื•ื’ื™ื ืก ืคึฟืึทืจ ื ืขืึธื•ื•ื™ื ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜ ื•ื•ื™ ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืจืึทืกืขืกืึทื–, ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื•ื•ืึธืก ื“ื™ MessagePack ืคึฟืึธืจืžืึทื˜ ืื™ื– ื’ืขื ื™ืฆื˜. ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืคึผืœื•ื’ื™ื ืก ืื™ื– ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืกืœื™ ื“ื•ืจื›ื’ืขืงืึธื›ื˜, ืึธืŸ ื‘ืœืึทืงื™ื ื’ ื“ื™ ื™ืงืขืจื“ื™ืง ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื“ืขืจ ืจืขื“ืึทืงื˜ืึธืจ. ืฆื• ืึทืงืกืขืก ื“ื™ ืคึผืœื•ื’ื™ืŸ, ืึท TCP ื›ืึธืœืขืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜, ื“.ื”. ื“ื™ ืคึผืœื•ื’ื™ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื•ื™ืคืŸ ืื•ื™ืฃ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืกื™ืกื˜ืขื. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, Neovim ื‘ืœื™ื™ื‘ื˜ ืงืึทืคึผื•ื™ืขืจ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ Vim, ื”ืืœื˜ ืฆื• ืฉื˜ื™ืฆืŸ Vimscript (Lua ืื™ื– ื’ืขืคึฟื™ื ื˜ ื•ื•ื™ ืึทืŸ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื•) ืื•ืŸ ืฉื˜ื™ืฆื˜ ืงืึทื ืขืงืฉืึทื ื– ืคึฟืึทืจ ืจื•ื‘ึฟ ื ืึธืจืžืึทืœ Vim ืคึผืœื•ื’ื™ื ืก. ื“ื™ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ Neovim ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ืคึผืœื•ื’ื™ื ืก ื’ืขื‘ื•ื™ื˜ ืžื™ื˜ ื ืขืึธื•ื•ื™ื-ืกืคึผืขืฆื™ืคื™ืฉ ืึทืคึผื™ืก.

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

ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืึธืคืคืขืจืก ืขืจืฉื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื•ื•ื™ื™ึทื˜ ืึทืจื‘ืขื˜, ืึทืœืึทื•ื™ื ื’ ืื™ืจ ืฆื• ืœื•ื™ืคืŸ Neovim ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืฆื• ืื™ื ืคึฟื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืกื™ืกื˜ืขื ืžื™ื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ui_client. ืื ื“ืขืจืข ืขื ื“ืขืจื•ื ื’ืขืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ: ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Python 2 ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ Lua ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ืงื™ื™ืžืึทืคึผ ืื™ื– ืขืจืœื•ื™ื‘ื˜, ื ื™ื™ึทืข ืงืึทืžืึทื ื“ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ API, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ Lua ืฉืคึผืจืึทืš ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืคึผืœื•ื’ื™ื ืก ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืื™ื– ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืงืกืคึผืึทื ื“ื™ื“, ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ื“ื™ืึทื’ื ืึธืกื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ืงืึธื“ ื–ืขื ืขืŸ ื™ืžืคึผืจื•ื•ื•ื“, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ื’ืœืื‘ืืœืข ืกื˜ืึทื˜ื•ืก ื‘ืึทืจ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ืคืึธืจืฉื˜ืขืœื•ื ื’ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ื–ืขื ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜. ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ LSP ืงืœื™ืขื ื˜ (ืฉืคึผืจืึทืš ืกืขืจื•ื•ื™ืจืขืจ ืคึผืจืึธื˜ืึธืงืึธืœ) ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืึทื ืึทืœื™ืกื™ืก ืœืึธื’ื™ืง ืื•ืŸ ืงืึธื“ ืงืึทืžืคึผืœื™ืฉืึทืŸ ืฆื• ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืกืขืจื•ื•ืขืจืก.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’