开发人员更喜欢 NeoVim 而不是 Vim 的 7 个原因

Vim 编辑器是 vi 在原始 UNIX 上找到的编辑器。 作为 Vim 的一个分支,Neovim 是一个旨在提高所有开发人员生活质量的编辑器,比 Vim 更好。

Vim 是经验丰富的系统管理员的绝佳选择。 然而,NeoVim 在开发人员中聚集了大量追随者。

想知道为什么更多的开发人员选择 NeoVim 而不是 Vim? 作为一名热心的 NeoVim 用户,我可以想到以下原因。

1:项目维护和功能改进

你可能想知道“Vim 如此流行,尤其是因为‘我不能退出 Vim’的模因,Vim 将成为用户的首选。为什么有人会分叉 Vim 并冒险浪费十几个人的开发时间用它?”

这是一个有效的问题。 Vim 真的很受欢迎! 但这并不意味着开发 Vim 的社区对项目本身的状态感到满意。

Vim 目前的代码库存在两个问题:

  • Vim 的首席开发人员一直没有将 Vim 的开发培养成一个社区友好的项目。 这个论点得到了最初添加到 Neovim 的特性的支持,比如异步支持、内置终端仿真器和弹出窗口(用于显示调试消息和自动完成建议),后来由于社区“压力”而被 Vim 采用。
  • 与 Neovim 相比,Vim 代码库的可维护性较差。

2:代码自动完成(LSP)

LSP 或语言服务器协议是一种协议,它定义了编辑器如何与“语言服务器”通信以启用代码突出显示、语法检查、代码完成、嵌入提示、类型提示等选项。

无论您是多么优秀的开发人员,在编辑器中获得类型提示、错误突出显示等功能都可能不会让您成为更好的开发人员。 尽管如此,它无疑会减少您的开发和/或调试时间。

Neovim 附带了对 LSP 的开箱即用支持,并使用 Lua 进行进一步配置。 然而,Vim 需要一个 外部插件 来实现这个功能。

3:支持更好的插件

插件是插入现有事物并为其添加新功能的东西。 在这种情况下,编辑器插件是插入编辑器并提供更多功能的东西。

Vim 已经拥有丰富的插件支持和生态系统,以至于有专为 Vim 设计的插件管理器!

但是 Neovim 通过允许插件使用一种“更通用的语言”来编写插件来超越 Vim Lua. 并不是说 Vim 的内置语言不好,而是如果您想要类似 IDE 的功能,设置会变得很复杂。 而且,对于实际的编程语言,这种配置比 Vim 更容易。

这意味着您甚至可以扩展或修改 核心 Neovim 功能。

这里有一个 专用于 Neovim 的插件列表 因为 Vim 不提供类似级别的可扩展性。

4:并行启动

我在上面讨论过,Neovim 使用 Lua 作为插件配置的可选但附加的语言。 但是你知道 Neovim 并行启动每个插件吗?

这应该会让你感觉使用 Neovim 更快,特别是如果你有需要几秒钟初始化的插件!

5:能够嵌入编辑器

由于 Neovim 编辑器的代码库比 Vim 更容易维护,将核心编辑器嵌入到其他东西中的可能性成为现实。

你现在终于可以在 VS Code 中拥有一个好的编辑器?

6:配置文件的位置

使用 Vim 后,当我需要将 distro hop migrate 迁移到新的不同 Linux 发行版时,我通常会忘记备份 ~/.vimrc 文件,因为它不在我的 ~/.config 目录。

大多数现代 Linux 应用程序都遵循称为 XDG(跨桌面组)的标准。 该标准定义了各种内容,但在本例中最重要的内容之一是应用程序加载其配置文件的位置。

该标准规定用户特定的配置文件应存储在 ~/.config 目录。 Neovim 遵守这个和主要的配置文件(init.nvim)被存储在里面 ~/.config/nvim/ 目录。

这是一个小问题,但在备份计算机上的重要文件时,它的重要性很高。

7:在 Neovim 中进行的优化

在我谈论优化之前,请注意 两个都 编辑们的速度足够快,以至于在日常工作中他们都不会觉得比对方快。 但我觉得有必要分享这个。

Neovim 对其如何响应用户命令进行了多项优化。 为 example,执行以下命令:

:g/<pattern>/d

如果您在 Vim 中执行上述命令,它将找到所有具有您指定的正则表达式模式的行并删除这些行。 这不是 Vim 要做的全部。 这 d 键还将删除的文本复制到寄存器(剪贴板)。

这意味着,Vim 将执行以下操作:

  1. 找到带有图案的线
  2. 复制到寄存器
  3. 删除行
  4. 如果还有其他匹配模式的行,则转到步骤 1

如果不需要第 2 步,可以在 Vim 中使用以下命令:

:g/<pattern>/d _

上面的命令将执行除将行复制到寄存器之外的所有操作,从而加快操作速度。 假设您在 Neovim 中运行前面的命令(没有下划线)。 在这种情况下,它会注意到您正在尝试删除多行,并将通过包含下划线自动“优化”它。

奖励:更好的开箱即用配置

这有点个人意见,但如果你是 Vim 或 Neovim 的新手,我建议你从 Neovim 开始你的旅程。 两个编辑器都可以配置,但 Neovim 有更好的默认设置。

为了 exampleNeovim 默认扭曲了以下旋钮:

  • autoindent 默认启用
  • background 默认为“暗”,除非由终端明确设置
  • hlsearch (突出显示所有匹配项)默认启用

尽管随着 Vim 的更新版本,这可能会有所改变,因为这两个编辑器都在不断发展。

结论

Vim 的创建是为了改进现有的 Vi 编辑器。 它代表 V 改进。 同样,NeoVim 的创建是为了改进现有的 Vim 编辑器。 它代表新 Vim。

自从我尝试并愉快地将我所有的 Vim 配置迁移到 Neovim 以来,我已经成为 Vim 用户两年了。 本文概述了为什么有人会选择 Neovim 而不是传统的 Vim。

你还在用 Vim 吗? 做评论,让我知道为什么! 🙂