前言
SpaceVim 是一個模塊化的 Vim IDE,針對 lua 這一語言的支持主要依靠 lang#lua 模塊以及與之相關的其它模塊。 的這篇文章主要介紹如何使用 SpaceVim 搭建 lua 的開發環境,側重介紹跟 lua 開發相關使用技巧。 在閱讀這篇文章之前,可以先來看看使用 Vim 搭建基礎的開發環境,對語言相關以外的功能有一個大致的了解。
使用 Vim 搭建基本開發環境
主要介紹如何使用 SpaceVim 搭建基礎的開發環境
安裝
在入門指南里,介紹了不同系統安裝 SpaceVim 的步驟。在安裝過程中還是存在一些問題,比如顏色主題看上去和官網不一致,出現各種字體亂碼。 安裝 SpaceVim 最理想的環境是 neovim + nerdfont + 一個支持真色的終端模擬器。
- neovim:建議查閱其wiki,獲取安裝步驟
- nerdfont: Linux 或 Mac 下 SpaceVim 安裝腳本會自動下載字體,windows 用戶需要自行下載 nerd 字體并安裝
- 一款支持真色的終端,如果不能啟用真色,可以在配置文件里禁用 SpaceVim 真色:
[options]
enable_guicolors = false
基本配置
SpaceVim 的配置文件有兩種,一種是全局配置文件,另外一種是項目專屬配置文件。我們可以這樣理解,在全局配置文件里,主要設置一些常規的選項和模塊, 比如 shell 模塊、tags 模塊。項目專屬配置文件則通常用來配置跟當前項目相關的模塊及選項,比如對于 python 項目,可以在項目專屬配置文件里啟用 lang#python 模塊。
這樣操作的好處在于,當處理多個不同語言項目是,不需要頻繁更新配置文件,也不用擔心載入過多的冗余插件,和無關的語言模塊。
基本使用
首先,需要了解下 SpaceVim 啟動后幾個界面元素:頂部標簽欄、底部狀態欄。可以看到,標簽欄通常只有一個,主要用來列出已經打開的文件或者是標簽頁。
文件及窗口操作
SpaceVim 會在狀態欄展示各個窗口的編號,可以使用快捷鍵 SPC + 數字 快速跳到對應的窗口,在頂部標簽了,會列出當前已經打開的文件或者標簽裂變, 可以使用快捷鍵 Leader + 數字 快速跳到對應的文件。在這里默認的 Leader 是 \ 鍵。
安裝模塊
SpaceVim 初次安裝時默認并未啟用相關語言模塊。首先需要啟用 lang#lua 模塊, 通過快捷鍵 SPC f v d 打開配置文件,添加:
[[layers]]
name = "lang#lua"
啟用 lang#lua 模塊后,在打開 lua 文件時,就可以使用語言專屬快捷鍵,這些快捷鍵都是以 SPC l 為前綴的。
代碼自動補全
autocomplete 模塊為 SpaceVim 提供了自動補全功能, 該模塊會根據當前環境自動在多種補全引擎之間選擇合適的, 默認的補全引擎有:deoplete、neocomplete、ycm、asyncomplete 以及 neocomplcache。 幾種自動補全引擎當中,要數 deoplete 的體驗效果最好。

語法檢查
checkers 模塊為 SpaceVim 提供了語法檢查的功能,該模塊默認已經載入。該模塊默認使用 neomake 這一異步語法檢查工具。對于 luac 的支持,是通過異步調用 luac 命令來完成的。

工程文件跳轉
SpaceVim 自帶工程管理插件,可以識別項目根目錄,自動跳轉alternate文件。
快速運行
在編輯 lua 文件時,可以快速運行當前文件,這個功能有點類似于 vscode 的 code runner 插件,默認的快捷鍵是 SPC l r。按下后, 會在屏幕下方打開一個插件窗口,運行的結果會被展示在窗口內。于此同時,光標并不會跳到該插件窗口,避免影響編輯。在這里需要說明下, 這一功能是根據當前文件的路徑調用相對應的 lua 命令。因此,在執行這個快捷鍵之前,應當先保存一下該文件。

代碼格式化
lua 代碼格式化,主要依賴 format 模塊,同時需要安裝相關的后臺命令 luaformatter:
[[layers]]
name = "format"
安裝 luaformatter:
luarocks install formatter
交互式編程
在編輯 lua 文件時,可通過快捷鍵 SPC l s i 啟動 lua -i 交互窗口,之后使用快捷鍵將代碼發送至解釋器。默認快捷鍵都以 SPC l s 為前綴。

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- SpringBoot+Redis執行lua腳本的方法步驟
- Lua中三種循環語句的使用講解
- Lua中的變量與賦值方法
- Android事件分發機制(上) ViewGroup的事件分發
- 詳解EventDispatcher事件分發組件
- Android View 事件分發機制詳解
- PHP中常用的三種設計模式詳解【單例模式、工廠模式、觀察者模式】
- 淺談發布訂閱模式與觀察者模式
- 分析Lua觀察者模式最佳實踐之構建事件分發系統