时事通讯 #2 - 或许做梦

2014 年 7 月

欢迎来到 Neovim 的第二份月刊时事通讯,Neovim 是一个旨在成为我们下一款心爱文本编辑器的项目。

一般新闻

配色方案竞赛

在关于 默认 Neovim 设置 的讨论中,有人提出了使用默认配色方案的想法。一个 后来的议题 开始决定使用哪种配色方案。

人们一致认为,一个新的配色方案对 Neovim 来说将非常棒。为此,Neovim 协作者将举办一场竞赛,允许提交配色方案。一段时间后,提交将关闭,然后启动一个新的投票,让社区选出获胜者。

获胜者将获得奖金,他们的配色方案将永远被载入 Neovim 的发行版中。

请关注 Neovim Twitter,了解提交指南和流程的公布时间。

开发新闻

澄清 Neovim 的许可证

@tarruda 对 Neovim 使用 Vim 的许可证 表达了 担忧。虽然 Vim 许可证仍然适用于原始 Vim 代码,但新编写的代码没有明确说明,可以重新授权。

社区决定使用 Apache 2.0。然后,许可证信息被 更新,并要求所有贡献者通过填写 此文档 并将您的姓名添加到 此 Wiki 页面 来签署 CLA

注意

这意味着,如果您在切换到 Apache 2.0 之前 贡献了代码,您的代码仍然受旧的 Vim 许可证约束。除非您签署 CLA,否则它不会成为 Apache 2.0 的一部分。

客户端 RPC

@tarruda 完成了 他的实现,提供了 channel_send_call 函数,允许在其他脚本引擎(如 Python、Ruby 等)中运行代码。

@tarruda 指出,代码在另一个进程中运行,阻塞直到客户端响应,具有 3 秒的超时时间,并且调用栈限制为 20。

各种修复和改进

@tarruda 开启了一个 拉取请求,建议对他过去的一些工作的各种修复和改进。这些更改针对的是作业 API、流 API 以及最后是事件 API。所有这些过去的特性都在上个月的时事通讯中讨论过。

这些更改包括能够通过流发送大量数据,为 msgpack 解析失败添加代码,以及能够锁定到一组事件源的能力。

在 Windows 下编译

能够在 Windows 上构建 Neovim 已经很受欢迎,并且是 几个月来的目标。整个讨论可以在 此问题 中查看。

最近取得的进展 是由 @equalsraf 在他试图在 MinGW 下构建 Neovim 时取得的。

要获得在其他平台上构建的帮助,请务必查看新近创建的 构建 Neovim 页面,该页面位于 Wiki 上,包含所有与编译相关的内容。

可增长数组添加

Garray.c 是 Vim 中的一个数据结构,它为编辑器提供了“growable array”。它一直是过去许多 拉取请求 的目标。

@philix 做出的 最新添加 提供了一种更简单的方法来追加到数组中。虽然 garray 仍在改进中,但最终它将被更健壮的解决方案淘汰。

修复 VimL Libcall

名为 mch_libcall() 的函数在某些清理过程中被暂时删除。它在 Vim 中通过使用 libcall() 函数调用,并被一些插件使用。

讨论从 它的临时删除开始,以及如何重新添加它以保持与 Vim 的兼容性。 @aktau 提出了一个解决方案,然后创建了一个 拉取请求,其中包含新的更改,这些更改已合并。

持续的文件函数重构

在上个月的版本中,我们讨论了对 mch_stat 调用的更改。这个重构是由 @stefan991 继续 的,以添加一个新的结构来封装 libuvuv_stat_tst_devst_ino

翻译

Neovim 的贡献者来自世界各地的国家。许多母语人士一直在忙于更新他们母语的翻译。

已经更新的翻译包括 德语巴西葡萄牙语。还有 西班牙语瑞典语 等正在进行中。

Doxygen 主题

@stefan991 定制了 Doxygen 主题,使其风格类似于 Neovim.io 的外观。然后,它被 添加到代码库中,用于未来的构建。

字符串处理

努力strlcpy 替换 vim_strncpy,它成功合并了。然而,这些更改产生了一些 后遗症

作为回应,@aktau 创建了一个 主问题 来协作处理流程,并讨论最佳前进方向。

引用 @philix 的话,他在 他的评论 中对它做了最好的总结

字符串处理对于文本编辑器来说非常重要,而当前的代码库没有很好的字符串处理抽象(即使我们一直在慢慢改进它)。在如此少的抽象(和大量的底层代码)下能够完成如此多的事情,真是奇迹。

未来事态

Neovim.io 上的文档

Neovim 的 开发文档 由 Doxygen 自动生成,正在被 迁移到 neovim.io 域名。

除此之外,Neovim 的用户文档也正在 迁移到那里

为了帮助这个过程,Neovim 新任命的常驻自动机(即机器人)@Marvim 将被配置为自动化这个过程。只是不要 和他谈论生活

帮助

捐赠

如果您想帮助支持开发,您可以使用比特币进行捐赠,地址为:1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ,或在 Neovim Bountysource 页面上支持团队。

贡献

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

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

总结

您对这第二份时事通讯有任何反馈或建议吗?欢迎通过 Neovim Twitter 联系我们。

同时,请务必订阅 RSS 订阅,以了解 Neovim 世界的最新动态。下一份时事通讯将在 8 月的第一个星期五左右发布。

下次再见。 :wq

新闻

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

什么是 Neovim?

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

讨论

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