发布 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

添加评论