新闻简报 #4 - 感恩节

2014 年 11 月

在开源世界中“取胜”的方法是保持一致和稳定。

欢迎阅读 Neovim 的第四份新闻简报,该项目旨在彻底改造 Vim 代码库。它还希望提供开箱即用的功能,同时提供更强大的扩展编辑器的接口。

一般新闻

炫耀你的爱

现在,你可以通过访问UnixstickersNeovim 部分,将 Neovim 贴纸添加到你的笔记本电脑上。

Unixstickers 将将其部分利润捐赠给ICCF Holland,以支持 Bram Moolenar 在 Vim 上的工作。

看到星星

上一份新闻简报详细介绍了 Neovim 如何在 GitHub 代码库中达到 1,000 个问题/拉取请求。

在过去两个月中,该代码库在 Github 上的星标数量超过了 10,000 个。该代码库也刚刚突破了100 位贡献者的里程碑。

Floobits 批准

Floobits是一项与编辑器集成的服务,使协同编写代码更加容易,它已弃用其 Vim 插件,转而使用 Neovim 插件。

Floobits 已经表示,新插件“比之前的插件有更少的错误,性能也更好”。阅读他们的完整文章,了解更多关于他们的想法,或查看代码库,查看代码。

日本 VimConf 2014

Vim-jp在 11 月 8 日的周末在日本东京举办了他们一年一度的VimConf 会议

@Shougo,许多 Vim 插件的创建者,发表了关于他迄今为止在 Neovim 上的经验和观点的演讲。查看幻灯片的英文版本,阅读他的想法。

开发新闻

重构插件系统

@tarruda完成了他的拉取请求,该请求做了两件事。它提供了远程插件的初始实现,这些插件将在外部进程中运行,并通过 msgpack-rpc 与 Nvim 进行通信。详细信息可以在:h remote-plugin中找到。

第二个变化是对现有提供者基础设施的改进,允许在 VimScript 中实现提供者。这提供了更大的灵活性,因为以前提供者需要使用 msgpack 实现。有关此的更多详细信息可以在:h nvim-provider中找到。

注意

如果你遇到此新插件系统的问题,可能是由旧版本构建的陈旧文件和/或旧配置造成的。

请查看此评论以及这两个后续问题以了解更多详细信息:12

重新启用 iconv

iconv是一个库,“用于那些没有或实现无法从/到 Unicode 转换的系统”。

在迁移到 CMake 期间,宏USE_ICONV被遗漏了,该宏用于指示这样的系统。因此,Neovim 从未在需要时触发特定的编码转换。

@aktau撰写了一篇很棒的文章,名为Neovim:输入编码与你,详细讨论了输入编码,以及他是如何发现此问题的。他创建了一个拉取请求来解决这个问题,它已经合并到主分支中。

删除 Vim 特定的整数类型(第 2 部分)

@elmart已回归,继续他过去的工作(12),在这个拉取请求中删除 Vim 特定的整数类型。这个主题最初在 6 月的第一份新闻简报中被提及。

合并此最新的拉取请求,消除了由@tarruda提出的删除所有项目特定类型这一长期存在的重构目标。

VimL -> Lua 和 Vim 错误报告

@ZyX-I仍然在努力推进他的VimL 到 Lua 翻译器。超过 **80%** 的 Vim 命令已在解析器中实现。

在编写翻译器的过程中,他遇到了各种错误(12345)。他继续将它们报告给vim_dev邮件列表,并在可能的情况下贡献补丁。

上游 Vim 补丁

自上一份新闻简报以来,大量的 Vim 补丁已合并到 Neovim 中。

这项工作由@splinterofchaos@Shougo@mhinz@NOLFXceptMe@atwupack@dkns完成(按移植补丁数量排序)。

你可以在 Neovim 网站上自动生成的Vim 补丁报告中查看 Vim 补丁的完整状态。

遗留测试迁移第 1 部分

@tarruda打开了一个主问题讨论遗留测试迁移后,第一个遗留测试@nate00迁移过来。@rainerborene随后进行了一批转换,并且已经在进行下一批转换

以前,遗留测试通过启动带有标志-s <test file>的 Vim 实例来运行,该标志启用了静默模式。此模式将读取行,就像你键入了它们一样。可以通过运行make oldtestnvim上运行测试。

迁移(示例测试:之前之后)得以实现,因为它们现在通过 msgpack-rpc 与 Neovim 进行通信;UI 在通信时将使用相同的机制。

错误修复

作业活动错误修复

@splinterofchaos碰巧发现了错误,在该错误中,作业活动的输出可能会被破坏。如果缓冲区在到达'\n'字符之前已满,则 rstream 结构可能包含不完整的行。

为了解决这个问题,@splinterofchaosAPI 级别添加了逻辑来查找新行字符并将其也返回。最终结果是,作业的活动现在将stdout存储在列表中,而不是字符串中。如果你的代码正在使用作业,你可能需要解决这个问题。

标记错误修复

@akkartik发现 Nvim 的标记功能中存在错误。

标记功能可用于在缓冲区的给定行上放置指示器。它将显示在编辑器窗口的左侧。这用于调试器、语法 linter 以及其他各种插件。

该错误导致 nvim 在使用:sign unplace命令时,无法删除跨多个缓冲区放置的标记。

@akkartik创建了一个拉取请求来修复此问题,并且还更新了CONTRIBUTING.md文件,以包含更多有关外观更改的指导

自制 Neovim

Neovim 已将其自制软件公式迁移到组织中的一个独立代码库,以便可以轻松地使用水龙头进行安装,而不仅仅是使用公式。你现在可以使用以下方法进行安装

$ brew tap neovim/homebrew-neovim
$ brew install --HEAD neovim

要查看更多内容,只需访问新代码库:neovim/homebrew-neovim@colinrymer最初提出了改进建议,而@xu-cheng帮助进行了测试和迁移。

Marvim 机器人

@Marvim是由@stefan991启动的 Neovim 机器人,在@fwalch的帮助下获得了一些重大改进。

这些改进包括

减少 Clang 分析器警告

@elmart一直在努力减少Clang 静态分析器的警告数量。他在四个不同的拉取请求中做到了这一点(1234)。

帮助

捐赠

如果你想帮助支持开发,你可以使用比特币在这里捐赠:1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ,或者在Neovim Bountysource页面上支持团队。

贡献

如果你是一位经验丰富的开发者,或者你没有经验,但想学习,请访问GitHub 代码库,查看READMECONTRIBUTING指南,最后是Wiki,以了解更多信息。

有很多机会帮助,还有很多事情要做。

结束语

你对这份新闻简报有任何反馈或建议吗?请随时通过Neovim Twitter联系我们。

这份新闻简报无法涵盖社区所有贡献和支持。感谢过去两个月以各种方式提供帮助的所有其他贡献者。

请务必订阅RSS 订阅,以便及时了解 Neovim 世界中的最新动态。下一份新闻简报将于大约两个月后发布,时间接近下一年的开始月份。

下次再见。:wq

新闻

新闻存档中查找更多更新。还有一个RSS 订阅

什么是 Neovim?

Neovim 是一个基于 Vim 的文本编辑器,旨在提高可扩展性可用性,以鼓励新应用和贡献

讨论

访问#neovim:matrix.org或irc.libera.chat上的#neovim频道与团队聊天。