Neovim 0.12.6:設定改用 Lua 寫,語言伺服器直接長在核心裡
摘要
一支跑在終端機裡的文字編輯器,編輯方式沿用 Vim 的習慣,設定則改成用 Lua 撰寫;語言伺服器客戶端與語法解析都做在核心裡,目前版本 0.12.6,以 Apache 授權釋出。
- 軟體名稱
- Neovim
- 版本
- 0.12.6
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinux
- 更新時間
- 2026-10-13 11:59
會在終端機裡寫程式的人,耐心通常不缺,缺的是一個不必反覆切換視窗的位置。
從 Vim 出發的一次重新拆解
終端機編輯器好在哪裡,說起來很簡單:不吃圖形介面、對機器要求低,隔著遠端連線一樣能動。老牌編輯器累積下來的手感,用了十幾年之後多半成了反射動作,換一套工具的代價高到多數人乾脆不換。這也是這類軟體壽命特別長、也特別難被取代的原因。
Neovim 站的就是這個縫隙。官方給的定義很短:可高度擴充、以 Vim 為基礎的文字編輯器。它真正動刀的地方是程式的組成方式。原本寫死在一起的部分被拆成幾個元件,編輯核心、介面與擴充機制各自獨立,彼此透過定義好的介面溝通。後來出現的許多變化,源頭都在這次拆分。
對使用者最直接的一點是相容。官方功能頁寫明,它與 Vim 的編輯模型以及第一版 Vim 腳本語言完全相容。按鍵習慣與既有腳本都能照用,原本的設定也可以一項一項搬,不必一次改寫完;官方文件裡還特別留了一個給 Vim 使用者看的入口。

設定、解析與擴充方式
設定搬到 Lua 之後,設定檔本身就能寫成帶條件與迴圈的程式,而不是一長串指派。外掛同樣可以用 Lua 寫。官方的說法是設定放在一個 Lua 檔案裡,腳本與外掛共用同一套語言,過去在兩種語法之間來回搬邏輯的例行工作就消失了。
編輯體驗上有兩處值得單獨拿出來講。一是語法解析改用 Tree-sitter,依語法結構讀程式,而不是逐行比對樣式,因此括號配對、按函式或按類別選取這些操作做得更準,語法著色也更貼近真實結構。二是語言伺服器客戶端直接做進核心,把各語言自己的分析服務接上之後,跳至定義、列出引用與重新命名這類跨檔操作就能用,不必每一種語言各寫一份實作。
擴充機制裡比較特別的是遠端程序介面。官方說明擴充可以用任何語言寫,圖形程式、整合開發環境甚至瀏覽器,都能把編輯核心當元件嵌進去。內建終端機則是另一項實用改動:建置、看日誌與改程式碼待在同一個視窗裡,少掉一層切換的成本。
版本與取得方式
官方發佈頁對 Linux、macOS 與 Windows 都提供建置產物,版本號一致,換平台時設定檔通常可以直接帶過去。目前最新版本為 0.12.6。同一次版本系列裡的修補版以修問題為主,跨次版本升級之前先讀一遍改動說明比較保險。
專案以 Apache-2.0 釋出,允許執行、修改與再散布,條款裡也包含專利授權的部分。對把編輯器接進公司開發流程的組織來說,這一條常被拿來跟純寬鬆授權比較。社群另外維護了一批預先配好的方案,裝上就有相當完整的編輯環境,適合不想從零開始攢設定的人先跑起來。
欄位 | 官方說法 |
|---|---|
目前版本 | 0.12.6 |
形態 | 終端機文字編輯器 |
平台 | Linux、macOS、Windows |
設定語言 | Lua |
主要能力 | 語言伺服器客戶端、Tree-sitter 解析、遠端程序擴充、內建終端機 |
授權 | Apache-2.0 |
留住舊的操作手感,同時把設定與擴充換到更好寫的語言上,是這次重構最實際的部分。
幾點實務建議:從 Vim 搬過來時先把舊設定整份留著,讓編輯器照常啟動,再逐項換成新寫法,一次只改一項比較好定位問題;語言伺服器按自己真的會用的語言逐個接,接太多啟動會明顯變慢;外掛清單保持精簡,出狀況時一個個停用來確認來源,比一次裝一堆再回頭排查省事。