- 1. 本文目标
- 2. 准备工作
- 3. 安装C++编译器和调试器
- 4. 安装插件
- 5. 插件的用法
- 6. C++开发常用的快捷键
- 7. 参考文档
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode之后,就再没换过其他工具,一直用到现在有5年多的时间。
1. 本文目标
这篇文章主要介绍如何使用VSCode来进行C++项目的开发,用VSCode来搭建一套C++跨平台开发环境。
2. 准备工作
官网下载VSCode并安装: https://code.visualstudio.com/
3. 安装C++编译器和调试器
参见《一文搞懂C/C++常用编译器》一文。
4. 安装插件
VSCode是一个功能丰富的代码编辑器,支持C++、JavaScript、Python、Java等多种语言的开发。同时还支持非常多的插件,可以拓展VSCode的功能,以满足各种开发的需求。为了更好地开发C++项目,需要安装一些插件。
插件名称 | 发布者 | 插件类型 | 功能介绍 | 备注 |
---|---|---|---|---|
C/C++ Extension Pack | Microsoft | C++开发 | 是微软提供的用于C++开发的VSCode插件工具集合,包括以下插件: C/C++ C/C++ Themes CMake CMake Tools |
你可以通过“C/C++ Extension Pack”一次性安装这四个子插件,也可以自己单独安装其中的部分插件。 |
C/C++ | Microsoft | C++开发 | 微软提供的C/C++开发工具,支持代码格式化、关键字提示和补全等功能。 | |
C/C++ Themes | Microsoft | C++开发 | 代码高亮/代码主题设置等功能 | |
CMake | twxs | C++开发 | cmake语法高亮,cmake代码智能提示和补全。 | |
CMake Tools | Microsoft | C++开发 | CMake构建和调试工具栏(VSCode底部工具栏) | |
Clang-Format | Xaver Hellauer | C++开发 | Linux和macOS下安装 C/C++插件后,就自带了C++的代码格式化器,但是windows下好像没有,可以安装这个插件做C/C++的代码格式化器 | |
C/C++ Snippets | Harsh | C++开发 | C/C++重用代码块 | |
cpp-check-lint | QiuminGe | C++开发 | 基于cppcheck 和cpplint 的C/C++代码检查工具 |
|
C/C++ Advanced Lint | Joseph Benden | C++开发 | 1. C/C++静态代码分析工具,特点:支持多种不同的静态代码分析工具。 2. 与 cpp-check-lint 是同类型的插件,可以根据自己的需求选择其中一个。 |
|
C++ include refactor | tostc | C++开发 | 重命名或刪除头文件时会自动重构引用处的代码 | |
Makefile | Microsoft | C++开发 | 可以帮助开发者更方便地管理和构建基于 Makefile 的项目,提供代码补全、构建任务集成、调试支持等功能。 | |
TODO Highlight | wayyou Jonathan Clark |
通用插件 | 高亮todo关键词。 | V1由wayyou发布和维护,V2(2020之后)由Jonathan Clark发布和维护。 |
Bracket Pair Colorizer | CoenraadS | 通用插件 | 成对的括号标记成不同的颜色,提高代码的可读性。 | 该插件已废弃,因为最新版本的VSCode已经内置了该功能 |
Code Runner | Jun Han | 通用插件 | 运行C/C++代码. | 该插件支持C/C++/Python/Java等多种语言。 |
Hex Editor | Microsoft | 通用插件 | 以十六进制方式打开二进制文件 |
5. 插件的用法
5.1. C/C++
5.1.1. 插件介绍
在VSCode下进行C/C++开发,C/C++
插件是最重要、功能最强大、也是最复杂的一个插件。我们从C/C++
的插件配置也能看出端倪:整个插件有158项配置,包含7大功能模块:
IntelliSense
: 代码智能提示、补全、跳转等功能,集成了C++ Intellisense
插件的几乎所有功能。Formatting
: 代码格式化器,可对代码进行自动格式化。Code Documentation
: 通过代码(注释)生成文档,定义注释的样式,集成Doxygen等工具。Code Analysis
: 代码分析器,对代码的错误、风格等进行检查,集成了Clang-Tidy
。Debugging
: Debug调试器。Resource Management
: 资源管理器。Miscellaneous
: 其他杂项配置。
进行C/C++开发,C/C++
是必装的一个插件,因为没有这个插件,你跟在记事本里写代码没有太大区别。
5.1.2. 插件配置
虽然C/C++
这个插件功能很多很复杂,但是我们也并不需要把158项配置全都了解完。因为大部分配置我们直接用默认的就可以了,并不需要逐个去了解他,默认配置即是最佳配置。我们只需要了解一小部分常用配置即可。
settings.json:
1 | { |
5.2. Clang-Format
- 下载LLVM
点击 llvm-project/releases 进入LLVM项目的二进制下载页面,下载最新版本的Windows安装包。
- 安装LLVM
将下载后的安装包clang+llvm-18.1.8-x86_64-pc-windows-msvc.tar.xz
解压后拷贝到自己的软件安装目录下(如:C:\software\clang-llvm-18.1.8
),bin
目录下会有个 clang-format.exe
,这个就是我们需要的代码格式化器。
- 配置码格式化器
打开Clang-Format插件的配置页面:
vscode -> Settings -> Extensions -> Clang-Format configuration
方式一:
将clang-format.exe
的绝对路径设置到Executable
。
方式二:
将C:\software\clang-llvm-18.1.8\bin
目录添加到系统环境变量的Path
中,VSCode配置页的Executable
填写clang-format
。
如果不配置 clang-format.exe 路径,格式化代码就会报错如下:
1 | The 'clang-format' command is not available. Please check your clang-format.executable user setting and ensure it is installed. |
- 格式化代码的快捷键
格式化部分代码: 选中部分代码,ctrl + k , ctrl + f
格式化所有代码: shift + alt + f。
格式化整个代码源文件: 编辑区域右键 -> Format Document。
- 设置代码风格样式
打开Clang-Format插件的配置页面:vscode -> Settings -> Extensions -> Clang-Format configuration
Fallback Style:选择你喜欢的风格样式,可以使用以下这些值,这些都是最受欢迎的C++代码风格样式:
LLVM, Google, Chromium, Mozilla, WebKit。
- 自定义代码样式
如果以上这些代码风格的样式都不能满足你的需求,可以自定义代码风格样式,也可以基于某种特定的代码风格做一些符合自己习惯的样式调整。
在项目的根目录下创建一个.clang-format
文件,并在文件中写入自定义的代码风格样式,具体格式定义的使用规则可以参考Clang-Format Style Options。
以下是个人的.clang-format
配置,可以作为Demo提供参考:
1 | # clang-format的般般: 18.1.8 |
5.3. cpp-check-lint
cpp-check-lint基于cppcheck
和cpplint
的C++代码检查工具,他将cppcheck
、cpplint
和VSCode
完美的集成在一起。对cppcheck
和cpplint
有依赖,其中cppcheck
需要自己另外手动安装,并将可执行文件的路径配置到插件的cpp-check-lint.cppcheck.--executable
。
5.3.1. cpplint
cpplint是一个用于检查C++代码规范的工具,它可以帮助我们自动化地检查代码,发现潜在的编码问题,确保代码风格的一致性和规范性,提高代码质量。cpplint
的代码检查会遵循 Google C++ Style Guide。cpplint
工具本身是有Python实现的,可以通过pip install
来安装。
cpplint
侧重于C++代码规范和风格的检查。
5.3.2. cppcheck
cppcheck是一个 C/C++ 静态代码分析工具,检测编译器通常无法检测到的错误类型,目标是没有误报。
cpplint
侧重于C++代码的错误、潜在安全问题、潜在性能问题的检查。
检查范围包括:
1 | 自动变量检查; |
5.3.3. 插件的使用
- 下载并安装Cppcheck(Windows通过安装包安装的话,安装完后要设置Path环境变量)。
- 打开命令行终端,执行
cppcheck --version
检查是否安装正常,有正常输出版本号说明安装成功。 - 重启VSCode.
- 打开配置页(vscode -> Settings -> Extensions -> cpp-check-lint)完成相应的配置:
关键配置说明如下:
1 | # 是否启用cpp-check-lint插件 |
5.4. C/C++ Advanced Lint
5.4.1. 插件介绍
C/C++ Advanced Lint
是C/C++静态代码分析工具,支持:1. 自动识别可用的静态代码分析工具,2. 代码编写过程中执行检测。与cpp-check-lint
是同类型的插件,最大的区别是支持的代码分析工具的钟磊和数量不同。
cpp-check-lint
只支持:
- CppCheck
- CppLint
C/C++ Advanced Lint
支持:
- CppCheck
- Clang
- FlawFinder
- PC-lint Plus
- Flexelint or PC-lint
- lizard
C/C++ Advanced Lint
要正常使用,至少需要安装一种上面的代码分析工具(可以同时安装和启用多个分析工具)。
5.4.2. 插件配置
关键配置:
1 | { |
代码分析工具的配置:
Cppcheck
的配置可以参考“5.2.3. 插件的使用”的相关内容。- 其他代码分析工具的配置,大家可以自己阅读对应的官方文档。
- 只需要配置已安装并启用的代码分析工具。
5.5. Bracket Pair Colorizer
5.5.1. 插件介绍
插件功能:成对的括号标记成不同的颜色,提高代码的可读性。
插件说明:该插件已废弃,因为最新版本(我的1.91.1版本已经内置了)的VSCode已经内置了该功能。
5.5.2. 功能配置
既然VSCode已经内置了该功能,我们将不在需要安装这个插件,直接在VSCode的设置中配置该功能即可。
- 打开配置页面:vscode -> Settings
- 在搜索框种输入
@id:editor.bracketPairColorization.enabled @id:editor.guides.bracketPairs
。 Editor › Guides: Bracket Pairs
的三个可选参数,含义分别如下:false
: 禁用括号对引导线
。true
: 启用括号对引导线
。active
: 只对当前光标所在的括号对启用括号对引导线
。
5.6. Code Runner
5.6.1. 插件介绍
Code Runner是一款VSCode的插件,它可以让你在VSCode中运行C、C++、Java、Python、JavaScript、PHP、Go、Swift、Perl、Ruby、R等语言的代码。
通过这个插件可以快速的编译、运行C++代码,在编写和调试一些Demo代码时非常方便。(在编译大型项目代码时还是建议用CMake、QT、Visual Studio等工具)。
5.6.2. 插件配置
settings.json:
1 | { |
5.6.3. 插件使用
方法一:在要执行的.cpp文件右键 -> Run Code
方法二:在VSCode的命令面板中输入:Code Runner: Run Code
,然后选择Run Code
按回车
方法三:快捷键:Ctrl + Alt + N
5.7. TODO Highlight
5.7.1. 插件介绍
TODO Highlight是一款VSCode的插件,它可以高亮显示代码中存在的TODO
和FIXME
等注释,方便开发者快速定位代码中需要解决的任务。
5.7.2. 添加高亮关键字
- 进入设置页面:
vscode -> Settings -> Extensions -> TODO Highlight
。 - 在
TODOhighlight:Keywords
配置项点击Edit in settings.json
。 - 在
"todohighlight.keywords"
中增加需要定义的关键词。
插件默认只配置了两个关键字:TODO:
和 FIXME:
,注意后面需要跟:
才能显示高亮。定义如下:
1 | { |
我的需求是:
- 关键不加
:
也要能高亮。 - 关键字要同时支持大小写。
修改后的配置如下:
1 | { |
6. C++开发常用的快捷键
Windows/Linux | macOS | 功能描述 |
---|---|---|
Alt + O | Option + O | 头文件(.h)与源文件(.cpp)之间切换 |
F12 | Fn + F12 | 快速跳转到变量或函数的定义 |
Shift + F12 | Shift + Fn + F12 | 查看所有引用,如:变量或函数的定义和所有被调用的地方 |
Alt + F12 | Cmd + Shift + F10 | Peek(窥视)定义: 在不离开当前代码上下文的情况下查看符号的定义 |
7. 参考文档
https://clang.llvm.org/docs/ClangFormatStyleOptions.html
https://dev.to/dhanu0510/how-to-configure-c-code-formatting-in-visual-studio-code-4d5m