Neovim 是久负盛名的文本编辑器 vim 的一个分支,专注于可扩展性和可用性。它不是重写,而是对 Vim 的延续和扩展。存在许多克隆和衍生版本,其中一些非常聪明,但没有一个是 Vim。Neovim 是为那些想要 Vim 的优点以及更多功能的用户而构建的。查看 :help vim-differences 中列出的差异列表。
如果您有兴趣为 Neovim 做贡献,请访问 github 页面 获取详细信息。我们拥有出色的测试套件和自动 CI,因此您可以直接参与并尝试。不要害怕打开 PR 以获取评论或仅仅利用基础设施的优势!
要与团队联系,请加入 gitter 频道(也可以通过 IRC 访问),或访问 Neovim subreddit,许多开发人员都会阅读它。参与对话也是一种贡献!
新贡献者致敬:@janlazo 自 2017 年 9 月左右以来一直在为 Windows 支持和移植 neovim 补丁而努力。感谢您!
老贡献者致敬:@jamessan 自 2014 年 3 月就加入了,并且一直非常聪明且乐于助人,一直在为 neovim 的 debian 包 做着巨大的贡献。感谢您!
上次新闻简报 涵盖了 Neovim 发布的 0.2.2 版本之前的全部内容。两年过去了,该项目一直像往常一样忙碌,不断改进用户和开发者体验。在此期间,我们在 2018 年 6 月发布了 0.3 版本。尽管这份新闻简报发布较晚(在 0.4 版本发布之后),但我们仍然认为它值得介绍 0.3 版本,以防您错过任何内容(0.4 版本将在以后的新闻简报中介绍)。
与往常一样,请查看 Following HEAD 以了解任何重大更改。
我们投入了大量精力来让 Neovim 更好地与不同的终端模拟器配合使用,并且还在不断改进(@justinmk,#7664,#7653,#7720,#7640,#7624,@florolf,#7676 以及 @erw7 #8408)。
来自 system()
和 :!
的输出支持多字节字符,并且对控制字符(CR、TAB)的处理也更好一些(@bfredl,#7844)。
display
添加了新的标志 msgsep
,以避免消息的全屏滚动(@bfredl,#8088)。命令行选项 --listen
替代了 $NVIM_LISTEN_ADDRESS
的用法(@justinmk,#8247)。
Neovim 将 stdin 视为文本,而不是命令。如果您想将 stdin 作为普通模式命令运行,请使用 nvim -s -
(@justinmk,#7679,@ZyX-I,#6299 以及 @b-r-o-c-k,#8276)。
Neovim 识别 (u)rxvt 中的鼠标事件(@symphorien,#8309)。
宏在执行时应用 :lmap
(@hardenedapple,#5658)。
列表实现已隐藏在 API 后面,以促进进一步的改进(@ZyX-l,#7708)。开发人员,特别是从 vim 移植补丁的人员,应该查看 维基页面。
nvim_list_uis
@geekodour,#8004)。nvim_get_commands
(@nimitbhardwaj,@justinmk,#8375)。stdpath
(@docwhat,#6272)。nvim_set_client_info
、nvim_get_chan_info
和 nvim_list_chans
(@bfredl,#6743)。nvim_buf_attach
/-detach
实现缓冲区更改通知。使用这些函数,您可以订阅在缓冲区更新时发送的事件,无论来源或方法如何(@phodge,@KillTheMule,#7917)。Neovim 已被 Google Summer of Code(GSOC) 接受。我们有两名学生正在进行有趣的开发工作。
感谢您的出色贡献,并感谢导师 @bfredl 和 @justinmk!
相关项目 的维基页面是一个不断增长的列表,列出了以某种方式利用了 Neovim 扩展功能的项目。以下是自上次新闻简报以来的添加内容概述。
以下插件已添加到我们的 维基 中。
如果您认为 3 个 C++ 客户端还不够,那么您一定会很高兴听到第 4 个竞争者已加入竞争。
如果您碰巧更喜欢没有列出 API 客户端的语言,那么 文档 是一个很好的起点,请务必在 gitter 频道 上谈论它。
自上次新闻简报以来,添加了三个新的 GUI。
一些专门讨论 Neovim 的博客文章。
Testing plugins from Neovim
指导您使用 Neovim 测试基础设施来测试您的插件。Rpc benchmarks
展示并对使用 RPC API 从插件创建折叠的不同方法进行基准测试。Neovim for Haskell Development
展示了 Neovim 如何帮助您完成 Haskell 开发需求。一段时间以来,@mhinz 一直维护着 neovim-remote。虽然它目前只在类 Unix 系统上可用(但 Windows 支持正在计划中),但它解决了一些人们经常问到的用例,例如
为了激发你的兴趣,这里有一个小 GIF 图
如果你对 wiki 内容有补充,请直接 编辑 页面,让全世界都知道!
自上次通讯以来的代码行变更
git log --since="2017-12-16" --numstat --pretty=tformat: --numstat|gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
added lines: 109127 removed lines: 40267 total lines: 68860
合并的提交
git log --since="2017-12-16"|wc -l
24167
不同的提交作者
git shortlog -e -s -n --since="2017-12-16"|wc -l
129
文档变更
git log --since="2017-12-16" --numstat --pretty=tformat: --numstat runtime/doc|gawk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s removed lines: %s total lines: %s\n", add, subs, loc }'
added lines: 4369 removed lines: 3645 total lines: 724
感谢贡献者、赞助商、错误报告者和支持者。感谢 @justinmk 为这个很棒的项目付出的努力,也感谢 @brammool 的基础工作。
Neovim 是一个基于 Vim 的文本编辑器,它为 可扩展性 和 可用性 而设计,鼓励新的应用程序和 贡献。
访问 #neovim:matrix.org 或 irc.libera.chat 上的 #neovim 与团队交流。