太好了!以下是一套适用于 C++ 开发者的 LazyVim 插件模板,包含:
• ✅ clangd LSP 支持(自动补全、诊断)
• ✅ nvim-treesitter(C++ 语法高亮、folding)
• ✅ aerial.nvim(大纲视图)
• ✅ lualine(状态栏美化)
• ✅ gruvbox 主题
• ✅ 快捷键优化
⸻
🧩 文件位置:lua/plugins/dev-cpp.lua
将以下内容保存到:
~/.config/nvim/lua/plugins/dev-cpp.lua
内容如下:
return {
– 设置主题
{ “ellisonleao/gruvbox.nvim” },
{
“LazyVim/LazyVim”,
opts = {
colorscheme = “gruvbox”,
},
},
– clangd LSP 配置
{
“neovim/nvim-lspconfig”,
opts = {
servers = {
clangd = {
cmd = { “clangd”, “–header-insertion=never” },
filetypes = { “c”, “cpp”, “objc”, “objcpp” },
},
},
},
},
– treesitter 添加 C/C++ 支持
{
“nvim-treesitter/nvim-treesitter”,
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
“c”,
“cpp”,
“cmake”,
})
end,
},
– mason 自动安装 clangd
{
“williamboman/mason.nvim”,
opts = {
ensure_installed = {
“clangd”,
“cpplint”,
},
},
},
– Aerial 大纲视图(右侧)
{
“stevearc/aerial.nvim”,
opts = {
layout = {
max_width = { 40, 0.3 },
min_width = 30,
default_direction = “right”,
},
backends = { “lsp”, “treesitter”, “markdown” },
},
keys = {
{ “co”, “AerialToggle!”, desc = “代码大纲” },
},
},
– 状态栏添加图标
{
“nvim-lualine/lualine.nvim”,
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return “🧠 C++ Mode”
end,
})
end,
},
}
⸻
🛠️ 生效步骤
1. 保存文件:lua/plugins/dev-cpp.lua
2. 打开 Neovim
3. 运行:
:Lazy sync
4. 重启 Neovim
5. 打开 .cpp 或 .h 文件,体验:
• 自动补全
• 错误诊断
• 折叠、缩进、语法高亮
• <leader>co 打开大纲视图(右侧)
⸻
🚀 推荐快捷键补充(可选)
你还可以在 lua/config/keymaps.lua 添加:
vim.keymap.set(“n”, “”, “lua vim.lsp.buf.definition()”, { desc = “跳转定义” })
vim.keymap.set(“n”, “”, “lua vim.lsp.buf.rename()”, { desc = “重命名变量” })
vim.keymap.set(“n”, “ca”, “lua vim.lsp.buf.code_action()”, { desc = “代码操作” })
⸻
需要我顺便生成:
• clang-format 样式模板
• .clangd 配置文件
• 一个 demo main.cpp
也可以一起帮你打包!📦
太好了!以下是一套适用于 C++ 开发者的 LazyVim 插件模板,包含:
• ✅ clangd LSP 支持(自动补全、诊断)
• ✅ nvim-treesitter(C++ 语法高亮、folding)
• ✅ aerial.nvim(大纲视图)
• ✅ lualine(状态栏美化)
• ✅ gruvbox 主题
• ✅ 快捷键优化
⸻
🧩 文件位置:lua/plugins/dev-cpp.lua
将以下内容保存到:
~/.config/nvim/lua/plugins/dev-cpp.lua
内容如下:
return {
– 设置主题
{ “ellisonleao/gruvbox.nvim” },
{
“LazyVim/LazyVim”,
opts = {
colorscheme = “gruvbox”,
},
},
– clangd LSP 配置
{
“neovim/nvim-lspconfig”,
opts = {
servers = {
clangd = {
cmd = { “clangd”, “–header-insertion=never” },
filetypes = { “c”, “cpp”, “objc”, “objcpp” },
},
},
},
},
– treesitter 添加 C/C++ 支持
{
“nvim-treesitter/nvim-treesitter”,
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
“c”,
“cpp”,
“cmake”,
})
end,
},
– mason 自动安装 clangd
{
“williamboman/mason.nvim”,
opts = {
ensure_installed = {
“clangd”,
“cpplint”,
},
},
},
– Aerial 大纲视图(右侧)
{
“stevearc/aerial.nvim”,
opts = {
layout = {
max_width = { 40, 0.3 },
min_width = 30,
default_direction = “right”,
},
backends = { “lsp”, “treesitter”, “markdown” },
},
keys = {
{ “co”, “AerialToggle!”, desc = “代码大纲” },
},
},
– 状态栏添加图标
{
“nvim-lualine/lualine.nvim”,
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return “🧠 C++ Mode”
end,
})
end,
},
}
⸻
🛠️ 生效步骤
1. 保存文件:lua/plugins/dev-cpp.lua
2. 打开 Neovim
3. 运行:
:Lazy sync
4. 重启 Neovim
5. 打开 .cpp 或 .h 文件,体验:
• 自动补全
• 错误诊断
• 折叠、缩进、语法高亮
• <leader>co 打开大纲视图(右侧)
⸻
🚀 推荐快捷键补充(可选)
你还可以在 lua/config/keymaps.lua 添加:
vim.keymap.set(“n”, “”, “lua vim.lsp.buf.definition()”, { desc = “跳转定义” })
vim.keymap.set(“n”, “”, “lua vim.lsp.buf.rename()”, { desc = “重命名变量” })
vim.keymap.set(“n”, “ca”, “lua vim.lsp.buf.code_action()”, { desc = “代码操作” })
⸻
需要我顺便生成:
• clang-format 样式模板
• .clangd 配置文件
• 一个 demo main.cpp
也可以一起帮你打包!📦
好的!以下是一个基于 example.lua 的经典 C++ 开发环境配置模板,专为 LazyVim 用户定制,支持:
✅ clangd LSP
✅ treesitter 高亮/折叠
✅ mason 自动安装工具
✅ aerial.nvim 右侧代码大纲
✅ lualine 状态栏自定义
✅ gruvbox 主题
✅ 一键编译运行 C++ 程序(选配)
⸻
✅ 文件路径
建议你复制为:
~/.config/nvim/lua/plugins/cpp-dev.lua
⸻
📄 完整内容(基于 example.lua)
– 基于 LazyVim 的 C++ 开发配置模板
– 建议保存为 lua/plugins/cpp-dev.lua
return {
– 🌈 配色方案
{ “ellisonleao/gruvbox.nvim” },
{
“LazyVim/LazyVim”,
opts = {
colorscheme = “gruvbox”,
},
},
– 🧠 clangd LSP
{
“neovim/nvim-lspconfig”,
opts = {
servers = {
clangd = {
cmd = { “clangd”, “–header-insertion=never” },
filetypes = { “c”, “cpp”, “objc”, “objcpp” },
},
},
},
},
– 📦 Mason 自动安装 C++ 工具
{
“williamboman/mason.nvim”,
opts = {
ensure_installed = {
“clangd”,
“cpplint”,
“codelldb”, – 可选:调试用
},
},
},
– 🌳 Treesitter 语法支持
{
“nvim-treesitter/nvim-treesitter”,
opts = function(_, opts)
vim.list_extend(opts.ensure_installed, {
“c”,
“cpp”,
“cmake”,
})
end,
},
– 📐 Aerial 代码大纲
{
“stevearc/aerial.nvim”,
opts = {
layout = {
max_width = { 40, 0.3 },
min_width = 30,
default_direction = “right”,
},
backends = { “lsp”, “treesitter” },
},
keys = {
{ “co”, “AerialToggle!”, desc = “切换代码大纲” },
},
},
– 💡 状态栏信息增强
{
“nvim-lualine/lualine.nvim”,
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return “🧠 C++ Dev”
end,
})
end,
},
– 🏃♂️ 一键运行 C++ 文件 (可选)
{
“tpope/vim-dispatch”,
lazy = false,
keys = {
{
“”,
“:w:!g++ % -o %< && ./%<”,
desc = “编译并运行当前 C++ 文件”,
},
},
},
}
⸻
🛠️ 使用步骤
1. 将此文件保存为 ~/.config/nvim/lua/plugins/cpp-dev.lua
2. 打开 Neovim,执行:
:Lazy sync
3. 打开 .cpp 文件后:
• <leader>co:右侧代码大纲
• <F5>:一键保存 + 编译 + 运行
• 自动补全、错误提示由 clangd 提供
⸻
🧱 搭配建议
• .clang-format 配置:
BasedOnStyle: Google
IndentWidth: 2
ColumnLimit: 100
PointerAlignment: Left
• .clangd 配置:
CompileFlags:
Add: [-Wall, -std=c++17]
• C++ 示例:
#include
int main() {
std::cout << “Hello, LazyVim!” << std::endl;
return 0;
}
⸻
如果你还想加入调试(nvim-dap + codelldb)、编译系统(nvim-make、cmake-tools.nvim)、或项目导航(telescope 或 nvim-tree),也可以继续扩展。
是否需要我再生成一个支持调试和 cmake 的高级版本?🔧