文章目录
- 一、clang-format(代码格式化工具)
- 1. 是什么?
- 2. 主要功能
- 3. 对应的 VS Code 插件
- 常用插件:
- 主要功能(通过插件实现):
- 4. 如何使用 clang-format?
- 命令行使用:
- 配合 .clang-format 文件:
- 在 VS Code 中配置自动格式化:
- 二、clangd(C/C++ 语言服务器)
- 1. 是什么?
- 2. 主要功能
- 3. 对应的 VS Code 插件
- 官方插件:
- 主要功能(通过插件实现):
- 4. 如何使用 clangd?
- 前提条件:
- 在 VS Code 中配置:
- 三、clang-format 与 clangd 对比总结
- 四、推荐搭配使用
- 五、总结
- 六.`以trae为例`手把手教你完成clangd与clang-format安装与使用
- 基于本地进行安装
- 以云服务器ubuntu22.04进行安装
一、clang-format(代码格式化工具)
1. 是什么?
clang-format是 LLVM 项目提供的一个命令行工具,用于自动格式化 C/C++/Objective-C 等代码,使其符合一致的代码风格(缩进、换行、括号位置、空格等)。
它不会修改代码的逻辑,只负责美化代码排版,是团队协作、代码规范管理中不可或缺的工具。
2. 主要功能
- 自动格式化代码,统一风格(比如大括号位置、缩进、空格、换行等)。
- 支持多种预设风格(如 LLVM、Google、Chromium、Mozilla、WebKit 等)。
- 支持自定义
.clang-format配置文件,灵活定义团队自己的代码风格。 - 可集成到 IDE / 编辑器(如 VS Code、Vim、Emacs)中,实现保存时自动格式化。
3. 对应的 VS Code 插件
在 VS Code 中,通常使用官方或社区提供的clang-format 插件来调用 clang-format 工具,实现代码格式化功能。
常用插件:
- Clang-Format(官方或社区版)
Marketplace 链接:https://marketplace.visualstudio.com/items?itemName=xaver.clang-format
主要功能(通过插件实现):
- 右键菜单格式化代码。
- 保存文件时自动格式化(需配置
editor.formatOnSave)。 - 手动选择代码片段格式化。
- 支持读取项目根目录下的
.clang-format配置文件。
4. 如何使用 clang-format?
命令行使用:
clang-format -i yourfile.cpp-i表示直接修改原文件,去掉-i则只输出格式化结果到终端(不修改文件)。
配合 .clang-format 文件:
在项目根目录创建一个.clang-format文件,定义你想要的代码风格,例如:
BasedOnStyle:LLVMIndentWidth:4UseTab:NeverBreakBeforeBraces:Allman在 VS Code 中配置自动格式化:
在settings.json中添加:
{"editor.formatOnSave":true,"C_Cpp.clang_format_path":"/path/to/clang-format",// clang-format 可执行文件路径"C_Cpp.clang_format_style":"file"// 使用项目中的 .clang-format 文件}二、clangd(C/C++ 语言服务器)
1. 是什么?
clangd是 LLVM 官方推出的一个C/C++ 语言服务器,它基于 Clang/LLVM,实现了Language Server Protocol (LSP),为编辑器提供强大的代码智能支持功能。
它相当于一个“代码大脑”,能为编辑器提供:
- 代码补全(IntelliSense)
- 语法错误检测(实时诊断)
- 跳转到定义/声明
- 查找引用
- 代码重构支持
- 悬浮提示(鼠标放上去显示类型/文档)
- ……
它是现代 C/C++ 开发中提升代码编写效率和质量的核心工具之一。
2. 主要功能
| 功能 | 说明 |
|---|---|
| 代码补全 | 输入时自动提示可能的代码(函数、变量、类成员等) |
| 错误诊断 | 实时显示语法错误、类型不匹配、未定义变量等 |
| 跳转定义/声明 | Ctrl+Click 或快捷键跳转到函数/变量定义处 |
| 查找引用 | 查看某个函数/变量在哪些地方被使用 |
| 代码重构 | 支持重命名符号、提取函数等(部分支持) |
| 悬浮提示 | 鼠标悬停在代码上显示类型、注释等信息 |
| 代码格式化 | 部分版本支持与 clang-format 联动格式化 |
3. 对应的 VS Code 插件
在 VS Code 中,使用官方提供的clangd 扩展来集成 clangd 语言服务器。
官方插件:
- Clangd(由 LLVM 团队维护)
Marketplace 链接:https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd
主要功能(通过插件实现):
- 自动启动 clangd 语言服务器。
- 提供代码补全、错误提示、跳转、重构等 LSP 功能。
- 支持读取
compile_commands.json以正确解析项目代码(关键!)。 - 支持自定义 clangd 启动参数(如指定编译器、头文件路径等)。
4. 如何使用 clangd?
前提条件:
- 安装clangd(通常随 LLVM 一起安装,如
sudo apt install clangd,或从 https://releases.llvm.org/ 下载预编译包)。 - 确保你的项目有
compile_commands.json(可通过 CMake 配置set(CMAKE_EXPORT_COMPILE_COMMANDS ON)生成)。
在 VS Code 中配置:
- 安装官方插件:Clangd。
- (可选)在
settings.json中配置 clangd 路径(如果 clangd 不在系统 PATH 中):{"clangd.path":"/path/to/clangd"// 例如 /usr/bin/clangd 或 ~/llvm/bin/clangd} - 确保项目根目录有
compile_commands.json(关键!用于 clangd 正确解析头文件和编译选项)。 - 打开 C/C++ 项目,clangd 会自动启动并提供智能支持。
三、clang-format 与 clangd 对比总结
| 工具 | 类型 | 核心功能 | 是否需要编译信息(如 compile_commands.json) | 主要用途 |
|---|---|---|---|---|
| clang-format | 代码格式化工具 | 自动格式化代码(缩进、空格、换行、括号等) | ❌ 不需要 | 统一代码风格,美化排版 |
| clangd | 语言服务器(LSP) | 代码补全、错误检测、跳转定义、重构、悬浮提示等 | ✅ 推荐(通过 compile_commands.json) | 提升编码效率,智能提示与错误检查 |
四、推荐搭配使用
在实际 C/C++ 开发中,推荐将两者结合使用:
- clangd:提供智能编码支持(补全、跳转、错误检查等),是开发时的“智能助手”。
- clang-format:提供代码风格统一,通常在保存文件时自动格式化,保证团队代码风格一致。
五、总结
| 工具 | 作用 | 是否必须 | 推荐程度 | 适用场景 |
|---|---|---|---|---|
| clangd | 智能代码补全、错误检查、跳转定义等 LSP 功能 | ✅ 强烈推荐 | ⭐⭐⭐⭐⭐ | 所有 C/C++ 开发者,提升编码效率与质量 |
| clang-format | 自动格式化代码,统一代码风格 | ✅ 推荐 | ⭐⭐⭐⭐ | 团队协作、代码规范管理 |
六.以trae为例手把手教你完成clangd与clang-format安装与使用
基于本地进行安装
首先可以去对应网址:https://github.com/clangd/clangd/releases/tag/19.1.2(点击即可)把对应的clangd压缩包下载下来。
- 根据电脑系统进行下载。
- 打开后可以看到对应可执行程序。
此时可以把它添加到对应环境变量:
- 最后保存退出即可。
- 此时说明已经成功安装。
对应的clang-format也是一样:https://github.com/llvm/llvm-project/releases?page=5(点击跳转)。
- 最后安装完也是把对应路径添加到对应环境变量的PATH中。
最后回到trae进行这几个插件下载安装,可能会出问题,此时只需要配置一下对应json即可:
- 把对应路径添加进去即可,如:
"clangd.path": "/usr/bin/clangd"。
以云服务器ubuntu22.04进行安装
安装clangd:
aptinstallclangd安装clang-format:
aptinstallclang-format- 此时都已经安装成功。
- 这里告诉trae在使用clangd插件的时候去云服务器这个路径去启动。
也可以通过配置json方式:
- 把对应的clangd和clang-format的路径都贴过来。
但是如果这里安装了一些其他C++编译插件,可能会产生冲突等,可以选择禁用或者再json中表明禁用:
"C_Cpp.intelliSenseEngine":"disabled"- 添加这句话即可。
所以云服务器如果配置这俩直接添加对应json即可:
{"clangd.path":"your-clangd-path!!!","C_Cpp.intelliSenseEngine":"disabled","clang-format.executable":"your-clang-format-path!!!"}注:
之后在使用cmake的时候,CMakeLists.txt文件一定要加上set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 生成编译命令数据库。
片尾小插曲:
“AI创作”这个词,最近太火了。
打开社交媒体,满屏都是“用AI写小说”“AI生成视频月入五万”“零基础做AI博主”……听起来很诱人,但更多人看完只是默默关掉页面,心里嘀咕一句:“这跟我有什么关系?我又不是程序员,也不会画画,连PPT都做得磕磕绊绊。”
于是,我们成了AI浪潮里的“旁观者”——看得热闹,却始终不敢下水。
但真相是:AI创作,从来就不是精英的专利,而是普通人的新机会。
你不需要会写代码,不需要有百万粉丝,甚至不需要“专业”的表达能力。你只需要一个动作:参与。
而“参与”,恰恰是最容易被忽略的第一步。
最近,脉脉 AMA AI 创作者活动第二期上线,它没有设置高门槛的投稿要求,也没有强调“作品必须惊艳”。相反,它把“普通人如何迈出第一步”作为设计核心——只要你愿意关注、评论、提问,就能获得知识、反馈,还有实实在在的积分奖励。
这不是一场竞赛,而是一个邀请:邀请每一个觉得自己“不够格”的人,走进AI创作的真实现场。
那些最早在评论区提问的人,现在可能已经和创作者成了朋友;
那些最早尝试用AI写日报的人,现在可能被同事称为“效率达人”;
那些最早兑换30元红包的人,可能已经用这笔钱买了第一本AI工具书。
成长,从来不是等你“准备好了”才发生,而是在你“开始做了”之后悄然降临。
所以,别再问“我行不行”。
点开活动页面,关注一位你觉得有意思的创作者,留下一条真实的问题——
这就是你AI创作之路的第一步。
而这一步,比你想象中,更有价值,别再当看客了,AI这趟车,现在上车还不晚。咱们AMA活动里见 👉 AMA活动!