VSCode 配置方法
由于国外网站下载速度极慢,因此采用国内镜像进行下载,来源:https://zhuanlan.zhihu.com/p/112215618
安装配置:https://www.cnblogs.com/lzpong/p/6145511.html
右键查看更多功能:包括格式化代码等操作
常用快捷键
功能 | 快捷键 | 功能 | 快捷键 |
---|---|---|---|
转到文件/其它常用操作 | Ctrl + P |
关闭当前文件 | Ctrl + w |
打开命令面板 | Ctrl + Shift + P |
当前行上移/下移 | Alt + Up/Down |
变量统一重命名 | F2 |
转到定义 | F12 |
关闭侧边栏 | Ctrl + B |
格式化 | Shift + Alt + F |
跳转到行 | Ctrl + G |
打开新窗口 | Ctrl + Shift + N |
关闭窗口 | Ctrl + Shift + W |
新建文件 | Ctrl + N |
文件切换 | Ctrl + Tab |
整行向左缩进 | Ctrl + [ |
整行向右缩进 | Ctrl + ] |
下方插入一行 | Ctrl + Enter |
上方插入一行 | Shift + Ctrl + Enter |
查找 | Ctrl + F |
查找替换 | Ctrl + H |
在整个文件夹中查找 | Shift + Ctrl + F |
在 Ctrl + P
窗口下还可以:
- 直接输入文件名,跳转到文件
?
列出当前可执行的动作@
跳转到变量或函数 (C-S o)#
根据名字查找 (C t)>
输入命令
编译文件
编译单文件
- 可以直接在终端中用 g++ 进行编译运行
- 也可以使用 VSCode 生成的 launch.json 和 tasks.json ,从而可以用快捷键
f5
进行编译调试
编译多文件
在终端中用 g++ -g
进行编译生成可执行文件后,编辑 launch.json ,然后可以用 f5
进行调试
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/main.exe", //只需将 "/" 后的变量改为生成的可执行文件名即可
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\minGW64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
// "preLaunchTask": "C/C++: g++.exe 生成活动文件" //将这一行注释掉,从而不生成新文件
}
]
}
项目工程
由于 CMake 在 VSCode 上运行似乎有一些问题,所以这里使用插件 C/C++ Project Generator
Ctrl + Shift + P
呼出命令行,输入 create C++ project
后选择文件夹即可直接建立工程;在 src 中放置 .cpp 文件,在 include 中放置 .h 头文件,在 lib 中放置库文件,output 中会存放编译得到的可执行文件;在头文件没有索引时,会有提示建立配置 json 即可
由此建立的工程具有 Makefile 文件,通过查看内容可以看出 make clean
仍然是清除输出的命令,可以借此学习 Makefile 文件的写法
make clean
问题处理 https://www.cnblogs.com/mrblug/p/13523089.html
注意:由于 make.exe 是在 cmd 中运行的,所以不能执行 shell 中的部分命令
# 这一句无法执行
clean:
rm main *.o
# 使用 del 替换 rm 命令
clean:
del main *.o
json
VSCode 中 launch.json 和 tasks.json 配置文件分别起到调试可执行文件、编译运行程序的作用
配置文件
launch.json 文件中配置调试过程
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
// fileDirname 表示需要调试的文件所在路径,后者表示文件名
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}", // cwd 等价于 cd ,这里表示进入调试文件所在目录
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
// 这一行表示在 launch 之前执行 tasks ,注意名称与 task 中的 label 一致
"preLaunchTask": "C/C++: g++ 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb" // 这是 gdb 调试器所在目录
}
]
}
task.json 文件用于配置编译环境
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ 生成活动文件", // 这是命令的标签
"command": "/usr/bin/g++", // 这是 g++ 编译器位置
// 这是编译的参数
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
// 编译选项,表示进入文件目录
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
模拟命令行
可以将命令行操作用 tasks.json 来进行操作
# 模拟以下命令行操作
cd build
cmake ..
make
实际上只需要分别实现每一个命令行,然后进行组合
{
// 先进入 build 目录
"options": {
"cwd": "${fileDirname}/build"
},
"tasks": [
{
"type": "shell",
"label": "cmake", // 设置命令标签
"command": "cmake", // 命令
"args": [
".." // 命令参数
],
},
{
"label": "make", // 命令标签
"group": {
"kind": "build",
"isDefault": true
},
"command": "make", // 命令
"args": []
},
{
"label": "Build", // 命令标签
"dependsOn": [
"cmake", // 根据标签导入前两个命令
"make"
]
}
],
"version": "2.0.0"
}
然后根据这一 task.json 调整 launch.json 中的文件路径
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
// 调整文件路径
"program": "${fileDirname}/build/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}", // cwd 等价于 cd ,这里表示进入调试文件所在目录
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
// 调整在 Launch 之前调用的 Task 标签名
"preLaunchTask": "Build",
"miDebuggerPath": "/usr/bin/gdb" // 这是 gdb 调试器所在目录
}
]
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具