Vim
首发于Vim
NeoVim 科普,21世纪的Vim

NeoVim 科普,21世纪的Vim

NeoVim 项目地址: GitHub - neovim/neovim

Vim 原项目地址: GitHub - vim/vim


巴西程序员 Thiago de Arruda Padilha(aka tarruda)向 Vim开源编辑器项目递交了两大补丁,对Vim的架构进行了大幅调整,结果遭到了Vim作者Bram Moolenaar的拒绝,因为对于Vim这样一个成熟的项目进行如此大的改变风险太高。于是tarruda发起了Vim fork项目Neovim,集资1万美元打造出21世纪的编辑器,提供更好的脚本、插件支持,整合现代的图形界面。


Bram Moolenaar 在写 Vim 时还是 90 年代初,至今已经 20 多年 过去了。其中,不仅包含了大量的遗留代码,而且程序的维护、Bug 的 修复、以及新特性的添加都变得越来越困难。为了解决这些问题,Neovim 项目应运而生。Neo 即“新”之意,它是 Vim 在这个新时代的重生。

根据 Neovim 的自述说明,在总体上,它将达到下列目的 :

  • 通过简化维护以改进 Bug 修复及特性添加的速度;

  • 分派各个开发人员的工作;

  • 实现新的、现代化的用户界面,而不必修改核心源代码;

  • 利用新的、基于协同进程的新插件架构改善扩展性,并支持使用任何语言 编写插件



该项目超额完成集资,已筹集到3.25万美元.


NeoVim 现状

NeoVim 目前在 Mac 和 Linux 上运作的很好,而且从项目的Commit上来看,项目发起人(PM)是个非常有经验的人,管理有条不紊, 不过项目迭代也是相当快,几天一个版本。Ubuntu 有现成的PPA源方便及时更新。

目前来说, NeoVim 已经实现 Vim 大部分功能,兼容Vim 90%+以上的配置。 小部分没有实现和兼容.


NeoVim 和 Vim 的差异

  1. NeoVim 只有终端版本. 没有 GUI 版本,但是Vim 有 GUI版本 (Gvim).
  2. NeoVim 目前的剪贴板功能(寄存器) 和 原生Vim实现不一 .
  3. NeoVim 配置文件入口和 Vim 不同, 可以通过 : version 查看.
  4. NeoVim 目前对外部语言的支持并不友好,目前他只对python支持比较完善,要支持Lua和其他外围语言相当麻烦, Vim则支持比较全面
  5. NeoVim 添加了异步函数,当然, Vim 暂时没有,Vim 8.0 也会补上这个功能
  6. NeoVim 解决了 Vim 在终端(Terminal ,Xterm等)下 alt 按键映射不响应的 bug,当然,Vim也有插件的解决方案。

Up主观点 :

讲道理,虽然NeoVim刚出来的时候,的确有不少路人nc粉吹鼓Vim已经老了,我们该换了NeoVim,用了一段时间NeoVim,和Vim基本没什么区别,性能方面,和在Linux下用Gtk3.0编译的最新Gvim差不多,我个人还更加趋向于用Gvim. 没有什么大放异彩的东西,文中提到的NeoVim项目需要实现的目标,目前看来可能只完成了一半都不到,打不打算出GUI版本还是个问题,当然,现在的NeoVim刚起步,也撼动不了SSH状态下Vim制霸的事实( Nano还有人用? 没有鄙视的意思,就是个疑问... ).


NeoVim 对于 Vim 的发展来说起到了重要的作用, Vim的原作者Bram Moolenaar 因为 NeoVim火起来的趋势不得不勤劳更新自己的Vim, 同时收集各种建议,添加了异步机制(在没有这个机制之前,写需要异步的插件需要其他框架或者外部程序的支持)。让我们拭目以待Vim 8.0 吧

编辑于 2016-06-20

文章被以下专栏收录

    最前沿的Vim资讯,实用的Vim配置技巧,操作技巧,插件推荐.