lazyvim cpp dev config

发布于:2025-06-26 ⋅ 阅读:(14) ⋅ 点赞:(0)

太好了!以下是一套适用于 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 的高级版本?🔧


网站公告

今日签到

点亮在社区的每一天
去签到