Neovim 0.4, Vim рд╕рдВрдкрд╛рджрдХрд╛рдЪреА рдЖрдзреБрдирд┐рдХ рдЖрд╡реГрддреНрддреА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ

рдкреНрд░рдХрд╛рд╢рд┐рдд рд░реАрд▓рд┐рдЭ Neovim 0.4, Vim рд╕рдВрдкрд╛рджрдХрд╛рдХрдбреВрди рдПрдХ рдХрд╛рдЯрд╛, рдХреЗрдВрджреНрд░рд┐рдд рд╡рд╛рдврддреНрдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░рддрд╛ рдЖрдгрд┐ рд▓рд╡рдЪрд┐рдХрддреЗрд╡рд░. рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдореВрд│ рдШрдбрд╛рдореЛрдбреА рдкреНрд░рд╕рд╛рд░ Apache 2.0 рдкрд░рд╡рд╛рдиреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд, рдЖрдгрд┐ Vim рдкрд░рд╡рд╛рдиреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдмреЗрд╕ рднрд╛рдЧ.

рдирд┐рдУрд╡рд┐рдо рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЪреМрдХрдЯреАрдд, рд╡рд┐рдо рдХреЛрдб рдмреЗрд╕рдЪреА рдкрд╛рдЪ рд╡рд░реНрд╖рд╛рдВрд╣реВрди рдЕрдзрд┐рдХ рдХрд╛рд│ рдкреБрдирд░реНрд░рдЪрдирд╛ рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди рдмрджрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЬреЗ рдХреЛрдб рджреЗрдЦрднрд╛рд▓ рд╕реБрд▓рдн рдХрд░рддрд╛рдд, рдЕрдиреЗрдХ рджреЗрдЦрднрд╛рд▓ рдХрд░рдгрд╛рд░реНтАНрдпрд╛рдВрдордзреНрдпреЗ рд╢реНрд░рдо рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд, рдЗрдВрдЯрд░рдлреЗрд╕ рд╡реЗрдЧрд│реЗ рдХрд░рддрд╛рдд. рдмреЗрд╕ рдкрд╛рд░реНрдЯ (рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рд▓рд╛ рд╕реНрдкрд░реНрд╢ рди рдХрд░рддрд╛ рдмрджрд▓рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ) рдЖрдгрд┐ рдирд╡реАрди рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреНрд▓рдЧрдЗрдирд╡рд░ рдЖрдзрд╛рд░рд┐рдд.

Vim рдордзреАрд▓ рд╕рдорд╕реНрдпрд╛рдВрдкреИрдХреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рдиреЗ Neovim рдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрд╕ рдкреНрд░рд╡реГрддреНрдд рдХреЗрд▓реЗ рддреЗ рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдЪрд╛ рдлреБрдЧрд▓реЗрд▓рд╛, рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдХреЛрдб рдмреЗрд╕, рдЬреНрдпрд╛рдордзреНрдпреЗ C (C300) рдХреЛрдбрдЪреНрдпрд╛ 89 рд╣рдЬрд╛рд░ рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдУрд│реА рдЖрд╣реЗрдд. рдХреЗрд╡рд│ рдХрд╛рд╣реА рд▓реЛрдХрд╛рдВрдирд╛ рд╡рд┐рдо рдХреЛрдбрдмреЗрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдмрд╛рд░рдХрд╛рд╡реЗ рд╕рдордЬрддрд╛рдд рдЖрдгрд┐ рд╕рд░реНрд╡ рдмрджрд▓ рдПрдХрд╛ рдореЗрдВрдЯреЗрдирд░рджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рд╕рдВрдкрд╛рджрдХ рд░рд╛рдЦрдгреЗ рдЖрдгрд┐ рд╕реБрдзрд╛рд░рдгреЗ рдХрдареАрдг рд╣реЛрддреЗ. GUI рд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Vim core рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрдРрд╡рдЬреА, Neovim рдиреЗ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рд▓реЗрдпрд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рд▓рд╛ рдЖрд╣реЗ рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рд╡рд┐рдз рдЯреВрд▓рдХрд┐рдЯ рд╡рд╛рдкрд░реВрди рдЗрдВрдЯрд░рдлреЗрд╕ рддрдпрд╛рд░ рдХрд░реВ рджреЗрддреЛ.

Neovim рд╕рд╛рдареА рдкреНрд▓рдЧрдЗрди рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореНрд╣рдгреВрди рд▓рд╛рдБрдЪ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдЪреНрдпрд╛рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА MessagePack рдлреЙрд░рдореЕрдЯ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рд╕рдВрдкрд╛рджрдХрд╛рдЪреНрдпрд╛ рдореВрд▓рднреВрдд рдШрдЯрдХрд╛рдВрдирд╛ рдЕрд╡рд░реЛрдзрд┐рдд рди рдХрд░рддрд╛ рдкреНрд▓рдЧрдЗрдирд╕рд╣ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкреНрд▓рдЧрдЗрдирдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ TCP рд╕реЙрдХреЗрдЯ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдЙрджрд╛. рдкреНрд▓рдЧрдЗрди рдмрд╛рд╣реНрдп рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдЪрд╛рд▓рд╡рддрд╛ рдпреЗрддреЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, Neovim Vim рд╢реА рд╕реБрд╕рдВрдЧрдд рд░рд╛рд╣рддреЗ, Vimscript рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рд░рд╛рд╣рддреЗ (Lua рдПрдХ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгреВрди рдСрдлрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ) рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рдорд╛рдирдХ Vim рдкреНрд▓рдЧрдЗрдирд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рдирдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. Neovim рдЪреА рдкреНрд░рдЧрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ Neovim-рд╡рд┐рд╢рд┐рд╖реНрдЯ API рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд▓рдЧрдЗрдирдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рд╕рдзреНрдпрд╛ рдЖрдзреАрдЪ рддрдпрд╛рд░ рд╡рд┐рд╡рд┐рдз рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ (C++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) рдЖрдгрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ (Qt80, ncurses, Node.js, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди, GTK+). рдЕрдиреЗрдХ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░реНрдпрд╛рдп рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗрдд. GUI рдЕреЕрдб-рдСрди рд╣реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕рд╕рд╛рд░рдЦреЗ рдЕрд╕рддрд╛рдд, рдкрд░рдВрддреБ рдкреНрд▓рдЧрдЗрдиреНрд╕рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рддреЗ рдирд┐рдУрд╡рд┐рдо рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ рдХреЙрд▓ рд╕реБрд░реВ рдХрд░рддрд╛рдд, рддрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдирд┐рдУрд╡рд┐рдордордзреВрди рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рдордзреАрд▓ рдХрд╛рд╣реА рдмрджрд▓ рдирд╡реАрди рдЖрд╡реГрддреНрддреА:

  • рдирд╡реАрди API рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЗрд╡реНрд╣реЗрдВрдЯрдЪрд╛ рдореЛрдард╛ рднрд╛рдЧ рдЬреЛрдбрд▓рд╛.
  • рд▓реБрдЖ рднрд╛рд╖реЗрдд рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА Nvim-Lua рдЬреЛрдбрд▓реА.
  • рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЪрд╛рд▓реВ рд░рд╛рд╣рддреЛ, рд╡реИрдпрдХреНрддрд┐рдХ рд╡рд░реНрдгрд╛рдВрдРрд╡рдЬреА рд╕реНрдХреНрд░реАрдирд╡рд░реАрд▓ рдорд╛рд╣рд┐рддреА рдУрд│реАрдВрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рд╡рд░ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ.
  • рдкреВрд░реНрдг рд╡рд╛рдврд▓реЗрд▓реНрдпрд╛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд╡рд┐рдВрдбреЛрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдард┐рдХрд╛рдгреА рдареЗрд╡рддрд╛ рдпреЗрддреЗ, рд╕рдВрд▓рдЧреНрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рд╡реИрдпрдХреНрддрд┐рдХ рд╕рдВрдкрд╛рджрди рдмрдлрд░рд╢реА рд▓рд┐рдВрдХ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдорд▓реНрдЯреАрдЧреНрд░реАрдб рдореЛрдбрдордзреНрдпреЗ рдЧрдЯрдмрджреНрдз рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
  • рдЕрд░реНрдзрдкрд╛рд░рджрд░реНрд╢рдХ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдиреВрд╕рд╛рдареА 'рдкрдВрдмрд▓реЗрдВрдб' рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛