SpaceVim 是一個模塊化的 Vim IDE,針對 C/C++ 語言的支持主要依靠 lang#c
模塊以及與之相關的其它模塊。
的這篇文章主要介紹如何使用 SpaceVim 搭建 C/C++ 的開發環境,側重介紹跟 C/C++ 開發相關使用技巧。
在閱讀這篇文章之前,可以先閱讀《使用 Vim 搭建基礎的開發環境》,對語言相關以外的功能有一個大致的了解。
安裝模塊
SpaceVim 初次安裝時默認並未啟用相關語言模塊。首先需要啟用
lang#c
模塊,通過快捷鍵 SPC f v d
打開配置文件,添加如下片斷:
[[layers]]
name = "lang#c"
啟用 lang#c
模塊后,在打開 C/C++ 文件時,就可以使用語言專屬快捷鍵,這些快捷鍵都是以 SPC l
為前綴的。
代碼自動補全
autocomplete
模塊為 SpaceVim 提供了自動補全功能,目前針對 PHP 而言,比較好的補全方案是配合使用 lsp 模塊:
[[layers]]
name = "lsp"
lsp 模塊默認使用 clangd
作為 C/C++ 的語言服務器后台命令。
在配置文件中添加如下內容即可為 C/C++ 啟用語言服務器:
[[layers]]
name = "lsp"
filetypes = [
"c",
"cpp"
]
[layers.override_cmd]
c = ["clangd"]
語法檢查
checkers
模塊為 SpaceVim 提供了語法檢查的功能,該模塊默認已經載入。該模塊默認使用 neomake
這一異步語法檢查工具。對於 C/C++ 的支持,是通過異步調用 gcc 命令來完成的。
工程文件跳轉
SpaceVim 自帶工程管理插件,可以識別項目根目錄,自動跳轉 alternate 文件。需要在項目根目錄添加工程文件 .project_alt.json
:
{
"*.c": {"alternate": "{}.h"},
"*.h": {"alternate": "{}.c"}
}
通過以上的配置,就可以使用命令 :A
在源文件和測試文件之間進行跳轉。
代碼格式化
C/C++ 代碼格式化,主要依賴 format
模塊,快捷鍵為 SPC b f
,異步執行 clang-format
命令:
[[layers]]
name = "format"
快速運行
在編輯 C/C++ 文件時,可以快速運行當前文件,默認的快捷鍵是 SPC l r
。按下后,
會在屏幕下方打開一個插件窗口,運行的結果會被展示在窗口內。於此同時,光標並不會跳到該插件窗口,避免影響編輯。在這里需要說明下,
交互式編程
在編輯 C/C++ 文件時,可通過快捷鍵 SPC l s i
啟動 php -a
交互窗口,
之后使用快捷鍵將代碼發送至解釋器。默認快捷鍵都以 SPC l s
為前綴。