Neovim 0.4,Vim 编辑器的现代化版本,现已推出

发表 发布 新维姆 0.4,来自 Vim 编辑器的一个分支, 专注的 关于提高可扩展性和灵活性。 项目的原始开发 传播 在 Apache 2.0 许可证下,基础部分在 Vim 许可证下。

在 Neovim 项目的框架内,Vim 代码库已经进行了五年多的重新设计,其结果是简化了代码维护,提供了在多个维护者之间分工的方法,将界面与应用程序分离。基础部分(可以在不触及内部的情况下更改接口)并实现新的 可扩展架构 基于插件。

Vim 的问题之一是其臃肿、单一的代码库,由超过 300 万行 C (C89) 代码组成,促使 Neovim 的创建。 只有少数人了解 Vim 代码库的所有细微差别,并且所有更改都由一名维护者控制,这使得编辑器的维护和改进变得困难。 Neovim 建议使用通用层,而不是内置在 Vim 核心中来支持 GUI 的代码,该通用层允许您使用各种工具包创建界面。

Neovim 的插件作为单独的进程启动,用于使用 MessagePack 格式进行交互。 与插件的交互是异步进行的,不会阻塞编辑器的基本组件。 要访问该插件,可以使用 TCP 套接字,即该插件可以在外部系统上运行。 同时,Neovim 仍然向后兼容 Vim,继续支持 Vimscript(Lua 作为替代方案提供)并支持大多数标准 Vim 插件的连接。 Neovim 的高级功能可用于使用 Neovim 特定 API 构建的插件。

目前已经 准备好了 大约 80 个特定插件、绑定可用于使用各种编程语言(C++、Clojure、Perl、Python、Go、Java、Lisp、Lua、Ruby)和框架(Qt5、ncurses、Node.js、电子、GTK+)。 一些用户界面选项正在开发中。 GUI 插件很像插件,但与插件不同的是,它们发起对 Neovim 函数的调用,而插件是从 Neovim 内部调用的。

一些变化 新版本:

  • 添加了大量新的API函数和用户界面事件。
  • 添加了新的标准库 Nvim-Lua,用于使用 Lua 语言开发插件。
  • 用户界面协议的开发仍在继续,以行的级别而不是单个字符的级别更新屏幕上的信息。
  • 添加了对成熟浮动窗口的支持,可以将其放置在任何位置、附加、链接到单独的编辑缓冲区,并在多重网格模式下分组。
  • 为半透明下拉菜单添加了“pumblend”选项。

来源: opennet.ru

添加评论