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出來🤔
  • 之後再說!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章