เบเบฒเบ™เบ›เปˆเบญเบ Neovim 0.7.0, เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™ Vim

Neovim 0.7.0 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบชเป‰เบญเบกเบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™ Vim เป„เบ”เป‰เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เป€เบžเบตเปˆเบกเบ—เบฐเบงเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™. เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰ reworking เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ” Vim เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเบเปˆเบงเบฒเป€เบˆเบฑเบ”เบ›เบต, เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบ”เบ‡เปˆเบฒเบ, เบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบญเบญเบเปเบฎเบ‡เบ‡เบฒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เบฎเบฑเบเบชเบฒเบซเบผเบฒเบ, เปเบเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบˆเบฒเบเบชเปˆเบงเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™ (เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™. เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเปเบฒเบœเบฑเบ”เบเบฑเบšเบžเบฒเบเปƒเบ™) เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปƒเบซเบกเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ plugins. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0, เปเบฅเบฐเบชเปˆเบงเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Vim. เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบš Linux (appimage), Windows เปเบฅเบฐ macOS.

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบšเบฑเบ™เบซเบฒเบเบฑเบš Vim เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเป‰เบฒเบ‡ Neovim เปเบกเปˆเบ™ bloated, เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ” monolithic, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบซเบผเบฒเบเบเปˆเบงเบฒ 300 เบžเบฑเบ™เบชเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” C (C89). เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบกเบ„เบปเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆ nuances เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ Vim codebase, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบœเบนเป‰เบฎเบฑเบเบชเบฒเบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒเปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบซเบผเบฑเบ Vim เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GUI, Neovim เบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบฑเป‰เบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป‚เบ”เบเปƒเบŠเป‰เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ•เปˆเบฒเบ‡เป†.

Plugins เบชเปเบฒเบฅเบฑเบš Neovim เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเป€เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบฎเบนเบšเปเบšเบš MessagePack เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบš plugins เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™ asynchronous, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบเบฑเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ plugin, เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ TCP socket, i.e. plugin เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเบžเบฒเบเบ™เบญเบ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, Neovim เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบš Vim, เบชเบทเบšเบ•เปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Vimscript (Lua เบชเบฐเป€เบซเบ™เบตเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ) เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบš plugins Vim เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบ‚เบญเบ‡ Neovim เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปƒเบ™ plugins เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰ APIs เบชเบฐเป€เบžเบฒเบฐ Neovim.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ›เบฐเบกเบฒเบ™ 130 plugins เบชเบฐเป€เบžเบฒเบฐเป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเปเบฅเป‰เบง, bindings เบกเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ plugins เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป‚เบ”เบเปƒเบŠเป‰เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ•เปˆเบฒเบ‡เป† (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) เปเบฅเบฐเบเบญเบš (Qt, ncurses, Node .js, Electron, GTK). เบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบญเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ. GUI add-ons เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš plugins, เปเบ•เปˆเบšเปเปˆเบ„เบทเบเบฑเบš plugins, เบžเบงเบเป€เบ‚เบปเบฒเป€เบฅเบตเปˆเบกเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ Neovim, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ plugins เบ–เบทเบเป€เบญเบตเป‰เบ™เบˆเบฒเบเบžเบฒเบเปƒเบ™ Neovim.

เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Neovim เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบกเบฑเบ™เบˆเบฒเบเบฅเบฐเบšเบปเบšเบฅเบนเบเบ„เป‰เบฒเป‚เบ”เบเปƒเบŠเป‰ ui_client เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบทเปˆเบ™เป†เบฅเบงเบกเบกเบต: เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Python 2 เป„เบ”เป‰เบ–เบทเบเบขเบธเบ”เป€เบŠเบปเบฒ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆ Lua เปƒเบ™ keymap เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”, เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ API, เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบชเบฒ Lua เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ plugins เปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡, เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบ–เบšเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบ—เบปเปˆเบงเป‚เบฅเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเบฅเบนเบเบ„เป‰เบฒ LSP (Language Server Protocol) เป„เบ”เป‰เบ–เบทเบเบ‚เบฐเบซเบเบฒเบเบญเบญเบ, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป‚เบญเบ™เป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบฅเบฐเบซเบฑเบ”เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบžเบฒเบเบ™เบญเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™