vscode的配置

快捷键

Ctrl + Shift + B


快捷键设置

按下 Ctrl + K,然后快速松开,紧接着按下 Ctrl + S。设置快捷键

配置文件

task.json

  • 不存在时 Ctrl+Shift+b(可能会有快捷键冲突,参考快捷键设置),调出
cpp 复制代码
{
	"tasks": [
		{
			"type": "cppbuild",
			"label": "Build with Muduo",
			"command": "/usr/bin/g++",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}",
				// --- 修改了下面这两行 (用绝对路径) ---
				"-I",
				"/home/yangpipi/muduo/build/release-install-cpp11/include",
				"-L",
				"/home/yangpipi/muduo/build/release-install-cpp11/lib",
				// ------------------------------------
				"-lmuduo_net",
				"-lmuduo_base",
				"-lpthread",
				"-std=c++11"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true // 这行让Ctrl+Shift+B直接运行,不再弹菜单
			},
			"detail": "编译 Muduo 服务器程序"
		},
	],
	"version": "2.0.0"
}
复制代码
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/beb7e27a77a24184a48ccd547ea25b0e.png)

settings.json

c_cpp_properties.json

launch.json

.clang-format

作用:

  • 位置:放在项目根目录下
yaml 复制代码
---
# 语言: C++
Language: Cpp

# 1. 基础风格:基于 Google,但我们会修改很多细节
BasedOnStyle: Google

# 2. 【核心解决】头文件排序与分组
# 开启排序
SortIncludes: true
# 关键设置:Regroup 会忽略你代码里的空行,强制把所有头文件抓取在一起重新分组
# 这解决了你刚才即使有空行也无法排序的问题
IncludeBlocks: Regroup

# 3. 缩进与对齐
# 缩进宽度:4个空格(Google默认是2,但4在很多IDE中更易读)
IndentWidth: 4
# Tab键宽度
TabWidth: 4
# 从不使用Tab字符,只用空格
UseTab: Never
# public/private/protected 缩进偏移(-4表示靠左对齐,不缩进)
AccessModifierOffset: -4
# 命名空间不缩进(大型项目中防止缩进过深)
NamespaceIndentation: None

# 4. 括号与换行风格
# 括号风格:Attach (Java/Google风格,左括号在行尾)
# 如果你喜欢左括号单独一行(Allman风格),改为: Allman
BreakBeforeBraces: Attach
# 每行最大字符数(120适合现代宽屏,80太老旧了)
ColumnLimit: 120

# 5. 指针与引用
# 指针/引用靠左:int* p (C++核心准则推荐)
# 如果你喜欢 int *p,改为: Right
PointerAlignment: Left

# 6. 垂直对齐(强迫症福音)
# 在开括号后对齐参数:
# void func(int a,
#           int b);
AlignAfterOpenBracket: Align
# 连续的赋值语句对齐(开启会让代码像表格一样整齐,但修改时改动行多)
# int a    = 1;
# int long = 2;
AlignConsecutiveAssignments: true
# 连续的声明对齐
# int    a = 1;
# double b = 2.0;
AlignConsecutiveDeclarations: true
# 连续的宏定义对齐
AlignConsecutiveMacros: true

# 7. 空格控制
# 操作符两侧加空格 (a + b)
SpaceBeforeAssignmentOperators: true
# 指针限定符 const 前加空格
SpaceAroundPointerQualifiers: Default
# // 注释前保留几个空格
SpacesBeforeTrailingComments: 2

# 8. 现代 C++ 特性支持
# 自动在 namespace 结束的大括号后添加注释 // namespace my_lib
FixNamespaceComments: true
# 允许短函数写在一行:int get() { return 0; }
AllowShortFunctionsOnASingleLine: Inline
# Lambda 表达式的格式化处理
LambdaBodyIndentation: Signature

# 9. 数组与初始化列表
# 初始化列表是否换行
Cpp11BracedListStyle: true
# 数组初始化对齐
AlignArrayOfStructures: Right

# 10. 排序优先级(重要!)
# 使得系统库 <iostream> 排在前面,用户库 "my_lib.h" 排在后面
IncludeCategories:
  - Regex:           '^<.*\.h>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
  • 如何开启

  • 保存的同时,自动格式化

  • 统一配置文件的位置

json 复制代码
{
    // 强制指定 Clang-Format 读取配置文件的路径
    "C_Cpp.clang_format_style": "file:${workspaceFolder}/.vscode/.clang-format"
}
相关推荐
Thanks_ks1 天前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境
Ravenq~1 天前
无头转换:把 .docx 变成 PDF,不打开编辑器
pdf·编辑器
usdoc文档预览2 天前
USDOC系列之PPT文件在线编辑-VUE前端实现在线浏览器在线编辑PPT文档
前端·vue.js·编辑器·office365·ppt在线编辑·office文件在线编辑·文件在线编辑
寂寞的船2 天前
【Unity知识速递】第4期 MCP for Unity:用 AI 自然语言控制编辑器
人工智能·unity·编辑器
寂寞的船2 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
浮尘笔记3 天前
JetBrains差异设置被自动勾选的排查与根治实录
经验分享·程序人生·编辑器·intellij idea·phpstorm·webstorm
Dream-Y.ocean3 天前
鸿蒙PC平台逻控 PLC 编辑器适配实战:基于 Electron 壳方案的纯 JavaScript 梯形图编程与仿真引擎开发
javascript·编辑器·harmonyos
独隅3 天前
WebStorm macOS 安装部署与高效调优实战指南
ide·macos·webstorm
golang学习记3 天前
IDEA 2026.3 远程开发迎来重磅升级
java·ide·intellij-idea·远程开发
NextTech_4 天前
不想学 vim,怎么改服务器上的配置文件?
服务器·编辑器·vim