【VScode | 格式化文档】一文掌握VScode使用 clang-format 的文档格式化(C/C++)

发布于:2025-07-05 ⋅ 阅读:(19) ⋅ 点赞:(0)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰发布时间⏰: 2025-07-04

本文未经允许,不得转发!!!


在这里插入图片描述
在这里插入图片描述

🎄一、概述

博主日常使用的是C/C++语言写代码,留意到 vscode 有个 格式化文档 的功能,但是默认的功能并不好用,或者说直接格式化之后并不能达到自己想要的效果,例如:格式化之后,原本对齐的自定义宏会变成不对齐;对齐的变量定义也变成不对齐的等等。
在这里插入图片描述
盲猜这个功能肯定是可以设置的,经过搜索了解到可以通过设置 C/C++ 插件的Clang_format_style来设置格式化文档的格式,下面章节演示如何在VScode设置clang-format的以及需要注意的点。


在这里插入图片描述

🎄二、简单了解 Clang-format

clang-format是一款代码格式化工具,可用于格式化 C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# 代码。

在使用clang-format命令行工具或代码中的clang::format::reformat(...)函数时,可以选择预定义的样式(LLVM、Google、Chromium、Mozilla、WebKit、Microsoft)之一,或者通过配置特定的样式选项来创建自定义样式。

clang-format 支持两种方式提供自定义样式选项:直接在 -style= 命令行选项中指定样式配置或使用 -style=file 并在项目目录中的 .clang-format_clang-format 文件中放置样式配置。

.clang-format 文件采用 YAML 格式,它的设置格式可以参考官方文档:
1、Clang 21.0.0git documentation CLANG-FORMAT STYLE OPTIONS
2、Clang 21.0.0git documentation CLANGFORMAT

或者参考这篇文章:Clang-format格式化及配置参数

Clang-format格式化及配置参数(效果展现):https://zed0.co.uk/clang-format-configurator/

下面是目前使用的 .clang-format 文件,将其复制后,保存到电脑:

---
# 编程语言:
Language: Cpp

# 基于哪种风格: LLVM|Google|Chromium|Mozilla|WebKit|Microsoft|GNU
BasedOnStyle: Google

# 圆括号之后,多行内容,进行对齐
AlignAfterOpenBracket: Align

# 对齐结构体数组
AlignArrayOfStructures: Right

# 连续赋值时,对齐所有等号
AlignConsecutiveAssignments: true

# 连续声明时,对齐所有声明的变量名
AlignConsecutiveDeclarations: true

# 连续宏定义时,对齐所有定义值
AlignConsecutiveMacros: AcrossEmptyLinesAndComments

# AlignOperands Align将对齐分割到多行上的单个表达式的操作数
AlignOperands: Align

# 对齐连续的尾随的注释
AlignTrailingComments: true

# 允许将一个函数声明的所有参数移到下一行.
AllowAllParametersOfDeclarationOnNextLine: false

# 将简单的语句块放到一个单行
AllowShortBlocksOnASingleLine: true

# if (a) return;放单行 属性:Never、WithoutElse没有else的可以放单行、OnlyFirstIf只有第一个if放单行、AllIfsAndElse总是把简短的if, else if和else语句放在同一行。
AllowShortIfStatementsOnASingleLine: Never

# BinPackArguments:如果为false,函数调用的参数要么全部在同一行,要么各有一行。
BinPackArguments: true

#BinPackParameters:如果为false,函数声明或函数定义的参数将全部在同一行或各有一行。
BinPackParameters: false

BreakBeforeBraces: Custom
# 控制单独的大括号换行事件,BraceWrapping 只有当BreakBeforeBraces设置为Custom时才有效
BraceWrapping:
  # 使控制语句(if/for/while/switch/..)换行。
  AfterControlStatement: true
  
  # 使枚举定义换行。
  AfterEnum: true
  
  # 使函数定义换行。
  AfterFunction: true
  
  # 使结构定义换行。
  AfterStruct: true
  
  # 使共同体定义换行。
  AfterUnion: true
  
  # 对case后面的大括号换行
  AfterCaseLabel: false
  
  # 在else之前换行。
  BeforeElse: true
  
  # 在while之前换行
  BeforeWhile: true
  
  # 换行大括号缩进。
  IndentBraces: false
  
  # 空函数是否可以放在单行:flase允许 true不允许
  SplitEmptyFunction: true
  
  #空类,结构或联合主体是否可以放在单行:flase允许 true不允许
  SplitEmptyRecord: true
  
  #空namespace是否可以放在单行:flase允许 true不允许
  SplitEmptyNamespace: true

SpaceBeforeParens: Custom
#控制圆括号前的单独空格,只有当SpaceBeforeParens设置为Custom时才有效
SpaceBeforeParensOptions:

  #在控制语句关键字(for/if/while…)和开括号之间放置空格
  AfterControlStatements: true
  
  #在函数声明名称和开括号之间不允许使用空格
  AfterFunctionDeclarationName: false

#指针对齐:右
PointerAlignment: Right

# 三元运算符将被放置在换行后
BreakBeforeTernaryOperators: true

# 每行字符的限制,0表示没有限制
ColumnLimit: 0

# 缩进空格宽度:4
IndentWidth: 4

# 保留在赋值操作符之前的空格
SpaceBeforeAssignmentOperators: true

# 不要排序include的头文件
SortIncludes: Never

# 允许重新排版注释
ReflowComments: true

# 尾行注释前的空格数
SpacesBeforeTrailingComments: 1

# 连续空行的最大数量
MaxEmptyLinesToKeep: 1

# 使用tab字符: Never从不使用, ForIndentation仅在缩进时使用制表符, ForContinuationAndIndentation, Always
UseTab: Never

# SpacesInParentheses如果为真(true), 将会在“(”之后和“)”之前插入空格。
SpacesInParentheses: false

# SpacesInSquareBrackets如果为真(true),将会在“[”之后和“]”之前插入空格。
SpacesInSquareBrackets: false

# 在多行字符串字面量时之前断行
AlwaysBreakBeforeMultilineStrings: false

在这里插入图片描述

🎄三、VScode 设置 Clang-format

✨3.1 确保安装了C/C++插件

首先,确保你的VScode软件已经安装了下图这个C/C++插件:
在这里插入图片描述


✨3.2 进入设置页面

在VScode左下角,按下图操作,或者直接按Ctrl+,,进入设置页面
在这里插入图片描述


✨3.3 设置 .clang-format 文件路径

在设置页面,输入clang_format_style,找到clang_format格式设置,然后将上个小节保存的.clang_format文件路径复制到对应输入框。下面是我的路径,注意路径前有个file:

file:C:\Users\Administrator\AppData\Roaming\Code\User\.clang-format

在这里插入图片描述


✨3.4 设置“保存时自动格式化”

如果你把 文档格式化 的效果调到了自己满意了,想每次保存时都自动格式化,那么可以按下图设置:
在设置页面输入format on save,然后勾选下图②的Format On Save选项。设置好,每次保存文件时都会自动格式化。

在这里插入图片描述


在这里插入图片描述

🎄四、总结

👉本文介绍了VScode针对C/C++语言进行代码格式化的功能,介绍了 clang-format 功能,以及设置 VScode 的 clang-format 配置。

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

参考:
clang-format的介绍和使用:https://www.cnblogs.com/tudou/p/13322854.html
Clang 21.0.0git documentation:https://clang.llvm.org/docs/ClangFormat.html
VScode使用clang format文档自动代码格式化(C语言):https://blog.csdn.net/weixin_42217191/article/details/129516325
VSCode + clang-format:https://blog.csdn.net/q441990439/article/details/131909415
Clang-format格式化及配置参数:https://blog.csdn.net/Once_day/article/details/127761573