oeasy教您玩转vim - 91 - # vim脚本编程展望
?
vim脚本编程展望
回忆
- 上次我们彻底研究了vim高亮的原理
-
各种语法项syntax item
- 关键字keyword
- 匹配模式match
- 区域region
-
定义好了之后还可以设置链接成组
hi def link javaComment Comment
-
然后就可以在颜色文件中具体配色了
- 比如murphy中对于Comment的定义
hi Comment ctermfg=yellow
- 不同的语言可以有不同的语法定义
- 其实,vim也是门语言
- vimscript也是可以编程的
- 怎么玩呢???
编写脚本
vi oeasy.vim
- 在
oeasy.vim
中写下 echo "hello vim script"
:w
:source %
- 这就是vim程序的编写和运行的基本方法
- vim既是编辑器,也是解释器
- 不过现在vim9script要有一个比较具大的改变
- 这个改编还要从2014年说起
分支
- 缘起
- 2014年vim还处于7.4版
- Thiago de Arruda为Vim提交了一个补丁,以引入多线程的功能
- 不过最终没有采纳
- 于是Thiago创建了一个分支NeoVim,并且筹集到了33万美元的资金
- 2015年末,Thiago不再领导相关的工作
- 而且neovim的社会化程度明显比vim高
- 提交代码的人数多691个人
- 而且每个人都提交好多代码
- 不过其实问题也不少
老根的演化
- vim这边
- 基本上还是非常稳妥
- 或者说比较缓慢的运动着
- 基本上是brammool一个人的世界
- 有其他的代码提供者
- 但是都是非常少的代码量
- 自从2018年开始,neovim的事情无疑刺激了brammool
- github的提交变得非常活跃
- 2016年9月12日,brammool提交了vim8
- vim8支持了异步和timer
vim9
- Bram Mool是真勤劳啊
- 谁看得出这位61年出生的老大爷已经进入了花甲之年
- vim9的项目已经成了只读的档案
- 现在的新提交的东西都在vim里面
- 不过我们可以从一些方面看到他对于vim9的企图心
vim9Script
- 这个新的脚本要加速运行
-
就要变更原来的一些模式
- 函数的参数只是名字,而不是来自于字典的东西,类似a:000列表之类的
- 本地变量不再放在一个字典里
- 异常处理的细节
- 速度能有多快呢?
- 感觉已经是脚本语言的极限了
- 据说函数是要编译成本地的指令的
- 而且要义无反顾地做一个不向前兼容的vim9script!!!
- 而且可以使用类库
- 总之,我们现在的脚本可能会发生改变
- 我们还是等vim9script发布出来之后再讲吧
预告
-
关于vim9现在有个预告
- 我感觉这脚本离不开vim
- 而且一定可以很方便地使用缓存buf、寄存器reg、标签tab之类的东西
- 双方已经上场对战
- 也许会杀出个第三方比如SpaceVim之类的
- 本教程先告一段落
总结
- vim历史悠久
- neovim前来挑战
- vim及时调整
- vim9script令人期待
- 到底什么时候更新
- 要等vim9script出来??
- 之后再说!
?