在本文中,我们将了解 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 在更现代的用法方面有所突破。 跟踪这种软件竞争将我们带到何处会很有趣。 在此之前,请继续关注更多此类文章。