oeasy教您玩轉(zhuǎn)vim - 91 - # vim腳本編程展望
vim腳本編程展望
回憶
上次我們徹底研究了vim高亮的原理
各種語法項syntax item
關(guān)鍵字keyword
匹配模式match
區(qū)域region
定義好了之后還可以設(shè)置鏈接成組
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既是編輯器,也是解釋器
不過現(xiàn)在vim9script要有一個比較具大的改變
這個改編還要從2014年說起
分支
緣起
2014年vim還處于7.4版
Thiago de Arruda為Vim提交了一個補丁,以引入多線程的功能
不過最終沒有采納
于是Thiago創(chuàng)建了一個分支NeoVim,并且籌集到了33萬美元的資金
2015年末,Thiago不再領(lǐng)導(dǎo)相關(guān)的工作
而且neovim的社會化程度明顯比vim高
提交代碼的人數(shù)多691個人
而且每個人都提交好多代碼
不過其實問題也不少

老根的演化
vim這邊
基本上還是非常穩(wěn)妥
或者說比較緩慢的運動著
基本上是brammool一個人的世界
有其他的代碼提供者
但是都是非常少的代碼量
自從2018年開始,neovim的事情無疑刺激了brammool
github的提交變得非?;钴S

2016年9月12日,brammool提交了vim8
vim8支持了異步和timer
vim9

Bram Mool是真勤勞啊
誰看得出這位61年出生的老大爺已經(jīng)進入了花甲之年
vim9的項目已經(jīng)成了只讀的檔案
現(xiàn)在的新提交的東西都在vim里面
不過我們可以從一些方面看到他對于vim9的企圖心
vim9Script
這個新的腳本要加速運行
就要變更原來的一些模式
函數(shù)的參數(shù)只是名字,而不是來自于字典的東西,類似a:000列表之類的
本地變量不再放在一個字典里
異常處理的細節(jié)
速度能有多快呢?

感覺已經(jīng)是腳本語言的極限了
據(jù)說函數(shù)是要編譯成本地的指令的
而且要義無反顧地做一個不向前兼容的vim9script!??!
而且可以使用類庫
總之,我們現(xiàn)在的腳本可能會發(fā)生改變
我們還是等vim9script發(fā)布出來之后再講吧
預(yù)告
關(guān)于vim9現(xiàn)在有個預(yù)告
https://vimhelp.org/vim9.txt.html#vim9.txt
我感覺這腳本離不開vim
而且一定可以很方便地使用緩存buf、寄存器reg、標簽tab之類的東西
雙方已經(jīng)上場對戰(zhàn)
也許會殺出個第三方比如SpaceVim之類的
本教程先告一段落
總結(jié)
vim歷史悠久
neovim前來挑戰(zhàn)
vim及時調(diào)整
vim9script令人期待
到底什么時候更新
要等vim9script出來??
之后再說!