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出来
- 之后再说!
oeasy教您玩转vim - 91 - # vim脚本编程展望的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- 国产Linux音视频聊天程序开发遇到的坑及解决:相互听不到对方声音?
最近完成了一个银河麒麟上的视频聊天项目,在我们开发机上测试一切正常后,提交给甲方测试.结果发现在甲方的某些银河麒麟V10的电脑上,听不到声音. 这个问题,使用<Avalonia 实现跨平台的IM ...
- linux文件权限管理:文件权限类型,文件权限影响,设定文件权限,取消文件权限
目录 一.关于文件权限 二.查看文件权限 三.linux下常见文件类型 四.linux下常见的文件权限 五.权限对文件和目录的影响 六.文件的用户分类 七.更改文件的属主和属组 八.一个文件取消所有权 ...
- 【c#】 重复鼠标键盘动作
这个先录制好要重复的鼠标和键盘的操作,然后就能重复的执行保存的这些动作,这个是我从csdn下载的,原本不支持录制键盘动作. + 符号 开始/暂停录制 / 播放/暂停动作 - 退出程序 主要是用到了 ...
- NumPy 二项分布生成与 Seaborn 可视化技巧
二项分布 简介 二项分布是一种离散概率分布,用于描述在固定次数的独立试验中,事件"成功"的次数的概率分布.它通常用于分析诸如抛硬币.做选择题等具有两个结果(成功或失败)的事件. 参 ...
- LlamaFS自组织文件管理器
LlamaFS是一个自组织文件管理器.它可以基于文件内容和修改时间等属性自动重命名和组织您的文件.它能让你不把时间花在对文件的复制.粘贴.重命名.拷贝.排序等简单操作上.有幸在Github上看到Lla ...
- 《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作
1.简介 有些页面的内容不是打开页面时直接加载的,需要我们滚动页面,直到页面的位置显示在屏幕上时,才会去请求服务器,加载相关的内容,这就是我们常说的懒加载.还有就是在日常工作和学习中,经常会遇到我们的 ...
- OpenCV笔记(3) CV::Mat
1. 创建一个数组 1.1 使用构造函数 cv::Mat a; //默认构造函数 cv::Mat b = cv::Mat(); //默认构造函数 cv::Mat c = cv::Mat(3, 3, C ...
- uniapp 拨打电话功能
phoneNumber进行动态调用时候一定要添加引号,否则会报错 1 call() { 2 uni.makePhoneCall({ 3 phoneNumber: 'this.leads.tel' // ...
- 设定cookie 获取cookie数据的转换
1,cookie必须是键值对形式的 键名=数值 而且必须是 字符串格式 document.cookie = 'nam ...
- 算法学习笔记(45): 快速沃尔什变换 FWT
遗憾的是 math 里面一直没有很好的讲这个东西--所以这次细致说说. FWT 的本质 类似于多项式卷积中,利用 ntt 变换使得卷积 \(\to\) 点乘,fwt 也是类似的应用. 定义某种位运算 ...