0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发人员为什么更喜欢NeoVim而不是Vim

jf_ZqFkd6Up 来源:Linux迷 2023-02-07 09:59 次阅读

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

Vim 是经验丰富的系统管理员的绝佳选择。然而,NeoVim 在开发人员中聚集了大量追随者。 想知道为什么更多的开发人员选择 NeoVim 而不是 Vim?作为一名热心的 NeoVim 用户,我可以想到以下原因。

1、项目维护和功能改进

你可能想知道“Vim 如此流行,尤其是因为‘我已经无法退出 Vim 了’,Vim 将成为用户的首选。为什么有人会分叉 Vim 并冒着浪费开发时间呢?” 这个问题提的好。Vim 真的很受欢迎!但这并不意味着开发 Vim 的社区对项目本身的状态感到满意。 c7f6c6ae-a447-11ed-bfe3-dac502259ad0.png


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

Vim 的首席开发人员一直没有将 Vim 的开发培养成一个社区友好的项目,Vim 的主要开发和讨论还是在邮件列表 上。NeoVim 自诞生以来,它就专注于提高自己的扩展性与易用性,例如内置终端、异步执行这两个比较重要的功能、弹出窗口(用于显示调试消息和自动完成建议),后来由于社区“压力”而被 Vim 采用。

与 Neovim 相比,Vim 代码库的可维护性较差。

2、代码自动完成(LSP)

LSP 或语言服务器协议是一种协议,它定义了编辑器如何与“语言服务器”通信以启用代码突出显示、语法检查、代码完成、嵌入提示、类型提示等选项。 无论您是多么优秀的开发人员,在编辑器中获得类型提示、错误突出显示等功能都可能不会让您成为更好的开发人员。尽管如此,它无疑会减少您的开发和/或调试时间。 Neovim 附带了对 LSP 的开箱即用支持,并使用 Lua 进行进一步配置。然而,Vim 需要一个外部插件来实现这个功能。

3、支持更好的插件

插件是插入现有事物并为其添加新功能的东西。在这种情况下,编辑器插件是插入编辑器并提供更多功能的东西。
c81675d0-a447-11ed-bfe3-dac502259ad0.png


Vim 已经拥有丰富的插件支持和生态系统,以至于有专为 Vim 设计的插件管理器! 但是 Neovim 通过允许插件使用“更通用的语言”在 Lua 中编写插件来超越 Vim 。并不是说 Vim 的内置语言不好,而是如果您想要类似 IDE 的功能,设置会变得很复杂。而且,对于实际的编程语言,这种配置比 Vim 更容易。 这意味着您甚至可以扩展或修改核心的 Neovim功能。 这是Neovim 专用的插件列表,因为 Vim 不提供类似级别的可扩展性。

4、并行启动

我在上面讨论过,Neovim 使用 Lua 作为插件配置的可选但附加的语言。但是你知道 Neovim 并行启动每个插件吗? 这应该会让你感觉使用 Neovim 更快,特别是如果你有需要几秒钟初始化的插件!

5、能够嵌入编辑器

由于 Neovim 编辑器的代码库比 Vim 更容易维护,将核心编辑器嵌入到其他东西中的可能性成为现实。 你现在终于可以在 VS Code 中拥有一个好的编辑器

6、配置文件的位置

使用 Vim 后,当我需要将跨发行版迁移到新的不同 Linux 发行版时,我通常会忘记备份~/.vimrc文件,因为它不在我的~/.config目录中。 c84bc7da-a447-11ed-bfe3-dac502259ad0.png


大多数现代 Linux 应用程序都遵循称为 XDG(Cross Desktop Group)的标准。该标准定义了各种内容,但在本例中最重要的内容之一是应用程序加载其配置文件的位置。 该标准规定用户特定的配置文件应存储在~/.config目录中。Neovim 坚持这一点,主要配置文件 (init.nvim) 存储在~/.config/nvim/目录中。 这是一个小问题,但在备份计算机上的重要文件时,它的重要性很高。

7、在 Neovim 中进行的优化

在我谈论优化之前,请注意这两个编辑器的速度都足够快,以至于在日常任务中都不会感觉比另一个更快。但我觉得有必要分享这个。 Neovim 对其如何响应用户命令进行了多项优化。例如,使用以下命令:


:g//d 如果您在 Vim 中执行上述命令,它将找到所有具有您指定的正则表达式模式的行并删除这些行。这不是Vim 要做的全部。该d密钥还将删除的文本复制到寄存器(剪贴板)。 这意味着,Vim 将执行以下操作:

找到与模式匹配的行

复制到寄存器

删除行

如果还有其他匹配模式的行,则转到步骤 1

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


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

好处:更好的开箱即用配置

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

autoindent默认启用

background默认为“dark 暗模式”,除非由终端明确设置

hlsearch(高亮显示所有匹配项)默认启用

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

结论

Vim 的创建是为了改进现有的 Vi 编辑器。它代表 V 改进。同样,NeoVim 的创建是为了改进现有的 Vim 编辑器。它代表新 Vim。 自从我尝试并愉快地将我所有的 Vim 配置迁移到 Neovim以来,我已经成为 Vim 用户两年了。本文概述了为什么有人会选择 Neovim 而不是传统的 Vim。 你还在用 Vim 吗?为什么!请在评论中告诉我。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11222

    浏览量

    208891
  • UNIX
    +关注

    关注

    0

    文章

    296

    浏览量

    41413
  • VIM
    VIM
    +关注

    关注

    0

    文章

    134

    浏览量

    15274
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68333
  • 编辑器
    +关注

    关注

    1

    文章

    800

    浏览量

    31112

原文标题:开发人员为什么更喜欢 NeoVim 而不是 Vim

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的单线聚合(SWA)——适用于FPGA开发人员和非FPGA开发人员

    拥有FPGA设计经验的开发者还能自定义该解决方案。即便没有FPGA设计经验,开发人员依然能够轻松快速完成部署。
    发表于 10-21 10:17 1798次阅读
    基于FPGA的单线聚合(SWA)——适用于FPGA<b class='flag-5'>开发人员</b>和非FPGA<b class='flag-5'>开发人员</b>

    RemoTI基本远程开发人员指南

    `RemoTI基本远程开发人员指南目录`
    发表于 03-16 16:28

    嵌入式开发人员需要重点监控的五个重要特征

    (这是我喜欢的一种测试方法,几乎百分之百不能一次通过)时,系统将如何响应。  幸运的是,现代微控制器有多种工具帮助开发人员理解嵌入式系统的时序和响应。举例来说,ARM微控制器有跟踪功能,使开发人员可以
    发表于 03-02 13:23

    TS-5400开发人员培训

    TS-5400开发人员培训
    发表于 10-09 08:54

    开发人员看的视频

    英特尔®软件频道旨在通过向开发人员提供示例,教程,提示,技巧以及如何将开发人员与影响者,创新者联系起来,帮助他们。
    的头像 发表于 11-01 06:26 2372次阅读

    什么是英特尔开发人员专区

    什么是英特尔®开发人员专区? 观看此视频,了解正在使用工具和资源满足编码需求的软件开发人员
    的头像 发表于 11-12 06:55 2456次阅读

    WebVR:开发人员使用的资源介绍

    这是WebVR系列的最后一集。 在这里,我们将向您介绍一些可供开发人员和爱好者使用的资源。
    的头像 发表于 11-12 06:05 1884次阅读

    英特尔开发人员专区:Android开发

    Android *英特尔®开发人员专区
    的头像 发表于 05-31 09:37 2879次阅读

    Intel开发人员专区

    Intel®开发人员专区
    的头像 发表于 05-31 09:24 1582次阅读

    开发人员的应用程序和网络安全

    ,揭示了网络安全问题与涉及应用程序的网络安全支持之间的差距。报告发现,大多数开发人员(85%)认为安全性对于编码和开发过程非常重要,75%的开发人员则表示他们对这些应用程序的安全性感
    的头像 发表于 11-22 11:01 3248次阅读

    物联网参考设计开发人员如何缩短设计周期

    满足对速度的需求Ignion的开发环境也有助于物联网参考设计人员开发人员和最终的制造商缩短其设计周期。借助于Ignion的技术,从数千种潜在可用的、彼此不同的天线中找到合适选项的过程,被缩减到从
    的头像 发表于 11-01 10:14 2285次阅读

    物联网开发人员喜欢基于Arm的处理器

    对 1,700 多名物联网开发人员的调查揭示了顶级硬件架构和 IDE 选择。 物联网开发人员面临着无数的硬件和软件挑战,从连接要求和互操作性到安全问题和数据管理。此外,他们需要牢记许多设计限制,包括
    发表于 07-29 11:03 634次阅读

    IoT 开发人员必须考虑设计和安全性

    IoT 开发人员必须考虑设计和安全性
    的头像 发表于 01-03 09:45 497次阅读

    IzoT BACnet 开发人员指南

    IzoT BACnet 开发人员指南
    发表于 03-13 19:31 1次下载
    IzoT BACnet <b class='flag-5'>开发人员</b>指南

    IzoT BACnet 开发人员指南

    IzoT BACnet 开发人员指南
    发表于 07-04 20:48 0次下载
    IzoT BACnet <b class='flag-5'>开发人员</b>指南