Vim vs Neovim:2021 年有什么不同?

在本文中,我们将了解 Vim 与 Neovim 之间的区别。 如果您几十年来一直在寻找功能强大的基于终端的模拟器,那么 Vim 拥有必备软件。 事实上,它是随着时间的推移而幸存下来的最古老的开源项目之一。 有很多非常好的终端编辑器,比如 nano,但它们无处可去 close vim 中的可扩展性以及功能和模式。

这种情况一直持续到 2014 年,当时一个 vim 的分支 Neo-vim 出现在开源地平线上。 Neo-vim 经常备受争议,因为 vim 的未来是为现代用户设计的。 多年来,Vim(尤其是在 Neo-vim 出现之后)和显然 Neo-vim 都取得了很大的发展。

Vim 与 Neovim – 快速总结

如果您现在被 Neo-vim 的新前景所吸引,但不确定是否要从古老且值得信赖的 vim 切换,这里是 Neo-vim 和 vim 之间以及到目前为止的差异的快速列表。

不同点 维姆 新维姆
当前稳定版本 8.2 0.4.4
可扩展 可扩展性较差 更可扩展
LSP 支持 依赖其他插件 内置
支持其他软件 在开发版

表 1:Neo-Vim 和 Vim 之间差异的简短总结

Vim 与 Neovim 之间的差异

让我们深入了解有关这些差异的更多细节。

1. 开发者社区

尽管 Vim 与 Neovim 都是开源项目并且托管在 GitHub 上,但它们的开发方式存在显着差异。 大型开源项目通常由共同支持和开发项目的开发人员社区提供支持。

近年来,vim 的情况并非如此。 长期以来,来自世界各地的开发者都为 Vim 做出了贡献。 但是现在 Bram Moolenaar 一直像看门人一样严格控制要添加到 vim 的功能。

NeoVim 现在更像是一个社区驱动的项目,仍然有各种各样的人做出贡献。 与 vim 相比,用户群和开发人员群相当小,但它是一个积极增长的项目。

2. 特点

在特性上,Vim 8 和目前的 Neo-vim 4.0 稳定版是不相上下的。 在 Neo-Vim 开箱即用后被 vim 社区广泛接受后,Bram 一直非常努力地将内置终端、异步支持等特性包含在 Vim 中。

这种情况应该随着 Neo-Vim 5.0 的出现而改变。 Neovim 5.0 已经有一段时间了。 它将为 Neo-Vim 带来原生 Lua 支持,并升级了对文章中讨论的 LSP 的支持。

3. 可扩展性

Neovim 是一个相当新的发展,另一方面 Vim 已经存在了更长的时间。 模块化和可扩展代码不是优先事项的时代。 因此 vim 的代码库更加复杂和相互关联,使得添加新功能变得困难。

Neo-Vim 显然没有犯同样的错误。 Neo-vim 是模块化的并且高度可扩展,就像您希望现代软件一样。

4. 语言服务器协议

“语言服务器旨在提供特定于语言的智能,并通过支持进程间通信的协议与开发工具进行通信。 语言服务器协议 (LSP) 背后的想法是标准化此类服务器和开发工具如何通信的协议。 “

LSP 旨在为我们的代码提供更好、更有用的语言洞察力。 当涉及到复杂的语言细节时,Vim 自动完成插件几乎无法完成工作。 对 LSP 的支持是终端之神和基于电子的编辑器(例如 vs-Code)之间的主要区别之一。

语言服务器协议支持与 Neo-Vim 一起开箱即用,与 Lua 一起使用使其更加可用和高度可定制。 另一方面,Vim 官方不支持 LSP 仍然需要安装第三方插件。

5. 成熟度

在这种情况下,软件成熟度的比较有点复杂。 Neo-Vim 是 Vim 的一个分支,因此预计它具有 Vim 以前的所有功能,但近年来 Vim 已被彻底重构。

Vim 目前是 v8.2(稳定版),Neo-Vim 是 v0.4.4。 Vim 是您更有可能遇到遗留代码的软件,另一方面,Neo-Vim 离它承诺的软件还有很大的差距。

6. 嵌入另一个程序

Vim 键绑定因其符合人体工程学和灵活性而非常受欢迎。 用户通常希望在编辑器、浏览器等中进行类似 vim 的移动,因为它只是让生活更轻松。

已经投入了大量的精力来制作允许类似 vim 的运动的插件。 一些值得注意的插件是 Vim for vs Code、Vimium for Chrome、Tridactyl for Firefox 等。但是这些插件缺少一个非常重要的东西——原创性。 他们不是vim。 他们只是试图模仿 vim 应该如何表现。

Neo-vim 5 允许直接调用 Neo-vim,从而使 vim 与其他顶层软件的交互更加容易。 由于 Neo-Vim 对 Lua 语言的内置支持,这在一定程度上是可能的。 因此,Neo-vim 有望让希望在 vim 之外使用 vim/nvim 快捷方式的 vim 用户更轻松。

结论

Vim 和 Neo-Vim 之间的功能差异目前不会持续超过几个月(除了少数核心差异)。 这一切都要归功于 Bram,他将 Vim 保持为第一。如果您正在寻找终端编辑器来使用 neovim,那么 vim 并没有什么不同。 Neo-Vim 在更现代的用法方面有所突破。 跟踪这种软件竞争将我们带到何处会很有趣。 在此之前,请继续关注更多此类文章。