發布 Neovim 0.7.0,Vim 編輯器的現代化版本

Neovim 0.7.0 已經發布,它是 Vim 編輯器的一個分支,專注於提高可擴展性和靈活性。 該專案已經對 Vim 程式碼庫進行了七年多的改造,其結果是簡化了程式碼維護,提供了在多個維護者之間分工的方法,將介面與基礎部分分開(介面可以是不觸及內部的情況下進行更改)並基於插件實現新的可擴展架構。 該專案的原始開發是在 Apache 2.0 許可證下分發的,基礎部分是在 Vim 許可證下分發的。 現成的組件適用於 Linux (appimage)、Windows 和 macOS。

Vim 的問題之一是其臃腫、單一的程式碼庫,由超過 300 萬行 C (C89) 程式碼組成,促使 Neovim 的創建。 只有少數人了解 Vim 程式碼庫的所有細微差別,並且所有變更都由一名維護者控制,這使得編輯器的維護和改進變得困難。 Neovim 建議使用通用層,而不是內建在 Vim 核心中來支援 GUI 的程式碼,該通用層可讓您使用各種工具包建立介面。

Neovim 的插件作為單獨的進程啟動,用於使用 MessagePack 格式進行互動。 與插件的互動是非同步進行的,不會阻塞編輯器的基本元件。 要存取該插件,可以使用 TCP 套接字,即該插件可以在外部系統上運行。 同時,Neovim 仍然向後相容於 Vim,繼續支援 Vimscript(Lua 作為替代方案提供)並支援大多數標準 Vim 插件的連接。 Neovim 的進階功能可用於使用 Neovim 特定 API 建置的插件。

目前,已經準備了大約130個特定插件,可以使用各種程式語言(C++、Clojure、Perl、Python、Go、Java、Lisp、Lua、Ruby)和框架(Qt、 ncurses、Node.js、Electron、GTK )。 一些用戶介面選項正在開發中。 GUI 插件很像插件,但與插件不同的是,它們發起對 Neovim 函數的調用,而插件是從 Neovim 內部調用的。

新版本為遠端工作提供了初步支持,可讓您在伺服器上執行 Neovim 並使用單獨的 ui_client 從客戶端系統連接到它。 其他變更包括:不再支援 Python 2、允許在鍵盤映射中使用 Lua 函數、向 API 添加新命令、使用 Lua 語言開發插件和配置管理的能力顯著擴展,改進了用於診斷程式碼問題的工具,新增了對全域狀態列的支持,並進行了效能最佳化。 內建LSP客戶端(語言伺服器協定)的功能得到了擴展,可用於將分析邏輯和程式碼完成傳輸到外部伺服器。

來源: opennet.ru

添加評論