【LunarVim】CMake LSP配置

在 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"
相关推荐
特立独行的猫a2 天前
CMake与GN构建系统对比及GN使用指南
harmonyos·cmake·openharmony·构建·gn
特立独行的猫a2 天前
海思WS63平台CMake构建系统使用指南
cmake·海思·ws63·fbb_ws63
阿拉斯攀登3 天前
【RK3576 安卓 JNI/NDK 系列 05】NDK 构建系统:CMakeLists.txt 从入门到精通
cmake·rk3568·瑞芯微·rk安卓驱动·安卓jni·ndk构建系统
茉莉玫瑰花茶3 天前
CMake 工程指南 - 工程场景(4)
服务器·c++·cmake
茉莉玫瑰花茶3 天前
CMake 工程指南 - 工程场景(5)
开发语言·c++·cmake
Laurence4 天前
CMake 查找、打印 Qt 所有 Components / 模块列表
开发语言·qt·cmake·打印·查找·所有组件·所有模块
梓䈑5 天前
【CMake】CMake工程构建全流程 以及 相关命令行工具的介绍
linux·cmake
Laurence6 天前
CMake 报错 Failed to find required Qt component WebEngineWidgets
qt·webengine·cmake·找不到
茫茫人海一粒沙1 个月前
从插件割裂到协议标准化:LSP 的诞生背景、原理与实践
lsp
学编程的闹钟1 个月前
安装GmSSL3库后用VS编译CMake源码
c语言·c++·ide·开发工具·cmake·visual studio