在 LunarVim 中为 CMakeLists.txt
文件启用代码提示(如补全和语义高亮),需要安装支持 CMake 的 LSP(语言服务器)和适当的插件。以下是完整配置指南:
1、配置流程
1.1 安装cmake-language-server
通过 Mason 安装 cmake-language-server
在 LunarVim 中运行:
vim
:Mason

找到 cmake-language-server
,按下 i
安装
安装完成后,它会出现在
~/.local/share/nvim/mason/bin/
中
✅ 安装完之后,再验证:
bash
~/.local/share/nvim/mason/bin/cmake-language-server --version
# cmake-language-server 0.1.11
应该会输出版本号或 help 信息,例如cmake-language-server 0.1.11。
1.2 配置
在配置文件config.lua中添加下面的配置
lua
-- 不跳过 cmake LSP
lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(
function(server) return server ~= "cmake" end,
lvim.lsp.automatic_configuration.skipped_servers
)
-- 配置 cmake-language-server
local lsp_manager = require("lvim.lsp.manager")
lsp_manager.setup("cmake", {
-- cmd = { "cmake-language-server" },
-- 把 cmd 显式写成 Mason 安装路径
cmd = { vim.fn.stdpath("data") .. "/mason/bin/cmake-language-server" },
filetypes = { "cmake" },
root_dir = require("lspconfig.util").root_pattern("CMakeLists.txt", ".git", "build"),
init_options = {
buildDirectory = "build"
}
})
-- 确保 CMakeLists.txt 正确识别为 cmake 文件类型
vim.cmd [[
autocmd BufRead,BufNewFile CMakeLists.txt set filetype=cmake
]]
这里的 vim.fn.stdpath("data")
等价于 ~/.local/share/nvim
,是跨平台写法。
1.3 重启 LunarVim:
保存 config.lua
后,重启LunarVim:
vim
:LvimReload
🔍 可以用 :LspInfo
检查 cmake
LSP 是否启动成功。打开 CMakeLists.txt
,执行:
vim
:LspInfo

1.4 效果(代码提示)

2、注意事项
🚨 通过 Mason 安装了 LSP,但系统找不到它(因为 它不在 $PATH
)
✅ 解决方式 1(推荐):显式设置 cmd 路径
lua
cmd = { vim.fn.stdpath("data") .. "/mason/bin/cmake-language-server" }
✅ 解决方式 2:把 Mason 的 bin
加到 $PATH
可以在 ~/.bashrc
或 ~/.zshrc
添加:
bash
export PATH="$HOME/.local/share/nvim/mason/bin:$PATH"