Neovim 0.4 yog muaj, niaj hnub version ntawm Vim editor

luam tawm tso tawm Neovim 0.4, rab rawg los ntawm Vim editor, tsom ntawm kev nce extensibility thiab yooj. Thawj qhov kev txhim kho ntawm qhov project kis mus nyob rau hauv Apache 2.0 daim ntawv tso cai, thiab lub hauv paus ib feem nyob rau hauv daim ntawv tso cai Vim.

Nyob rau hauv lub moj khaum ntawm Neovim qhov project, Vim code puag tau raug rov ua dua rau ntau tshaj tsib xyoos, vim tias qhov kev hloov pauv tau ua kom yooj yim rau kev tswj hwm txoj cai, muab kev faib ua haujlwm ntawm ntau tus neeg saib xyuas, cais qhov sib cuam tshuam los ntawm kev tswj hwm tus lej. puag ncig (lub interface tuaj yeem hloov pauv yam tsis tau kov lub internals) thiab siv qhov tshiab extensible architecture raws li plugins.

Ib qho ntawm cov teeb meem nrog Vim uas tau ua rau kev tsim ntawm Neovim yog nws bloated, monolithic code puag, muaj ntau tshaj 300 txhiab kab ntawm C (C89) code. Tsuas yog ob peb tus neeg nkag siab tag nrho cov nuances ntawm Vim codebase, thiab tag nrho cov kev hloov pauv yog tswj los ntawm ib tus neeg saib xyuas, uas ua rau nws nyuaj rau kev tswj hwm thiab txhim kho cov neeg kho. Hloov chaw ntawm txoj cai tsim rau hauv Vim core los txhawb GUI, Neovim tawm tswv yim siv cov txheej txheem thoob ntiaj teb uas tso cai rau koj los tsim kev sib tshuam siv ntau yam khoom siv.

Plugins rau Neovim tau pib ua cov txheej txheem cais, rau kev sib cuam tshuam uas siv MessagePack hom. Kev sib cuam tshuam nrog plugins yog ua tiav asynchronously, tsis thaiv cov ntsiab lus ntawm tus editor. Txhawm rau nkag mus rau lub plugin, lub qhov (socket) TCP tuaj yeem siv tau, piv txwv li. lub plugin tuaj yeem khiav ntawm qhov system sab nraud. Nyob rau tib lub sijhawm, Neovim tseem rov qab sib haum nrog Vim, txuas ntxiv txhawb Vimscript (Lua yog muab los ua lwm txoj hauv kev) thiab txhawb kev sib txuas rau feem ntau tus qauv Vim plugins. Neovim cov yam ntxwv siab heev tuaj yeem siv tau hauv plugins tsim siv Neovim-specific APIs.

Tam sim no lawm npaj txog 80 cov plugins tshwj xeeb, kev sib txuas yog muaj rau kev tsim plugins thiab siv interfaces siv ntau hom lus programming (C ++, Clojure, Perl, Python, Go, Java, Lisp, Lua, Ruby) thiab lub moj khaum (Qt5, ncurses, Node.js, Electron, GTK+). Muaj ob peb tus neeg siv interface xaiv tau raug tsim. GUI add-ons zoo li plugins, tab sis tsis zoo li plugins, lawv pib hu rau Neovim ua haujlwm, thaum plugins raug hu los ntawm hauv Neovim.

Qee qhov kev hloov pauv hauv tshiab version:

  • Ntxiv ib feem loj ntawm API tshiab ua haujlwm thiab cov neeg siv interface txheej xwm.
  • Ntxiv ib lub tsev qiv ntawv tshiab Nvim-Lua rau kev tsim plugins hauv Lua lus.
  • Txoj kev loj hlob ntawm tus neeg siv interface raws tu qauv txuas ntxiv, hloov kho cov ntaub ntawv ntawm qhov screen ntawm qib kab, tsis yog cov cim ntawm tus kheej.
  • Ntxiv kev txhawb nqa rau lub qhov rais uas muaj qhov dej ntws tag nrho, uas tuaj yeem muab tso rau hauv txhua qhov chaw, txuas nrog, txuas rau tus neeg kho cov buffers, thiab pab pawg hauv Multigrid hom.
  • Ntxiv 'pumblend' kev xaiv rau translucent dropdown menus.

Tau qhov twg los: opennet.ru

Ntxiv ib saib