使用步骤:
执行步骤:
使用步骤:
选择VS code 文件目录中常用的文件夹,可以选择“user”
然后会发现在根目录下会创建.vscode文件夹下,多了c_cpp_properties.json文件
点击新生成的json文件,在includePath 中添加想要跳转的文件所在的路径,建议使用相对路径,设置之后也是重启编辑器才会生效
注意:cppStandard表示当前代码的cpp版本,如果不对需要更换版本,最常用的是C++11
作用:静态代码检查工具,支持c, c++ 代码,主要用于检测内存泄漏
检查的内容:
- 自动变量检查
- 数组的边界检查
- class类检查
- 过期的函数,废弃函数调用检查
- 异常内存使用,释放检查
- 内存泄漏检查,主要是通过内存引用指针
- 操作系统资源释放检查,中断,文件描述符等
- 异常STL 函数使用检查
- 代码格式错误,以及性能因素检查
使用步骤:
/* cppcheck配置 */
"cpp-check-lint.--enable": true, //启用插件
"cpp-check-lint.cppcheck.--executable": "C:\\Program Files\\Cppcheck\\cppcheck.exe", //cppcheck路径
"cpp-check-lint.cppcheck.--inline-suppr": false, //取消内联
"cpp-check-lint.cppcheck.--language=": "c", //使用c语言进行检查
"cpp-check-lint.cppcheck.--onsave": false, //在文件保存时立刻检查该文件
"cpp-check-lint.cppcheck.--quick_fix": false,
"cpp-check-lint.cpplint.--enable": false, //关闭无用的cpplint,查看博文:https://zhuanlan.zhihu.com/p/79913216,深入了解代码风格审查工具Cpplint
// "cpp-check-lint.cppcheck.--addon=": [ //暂时不开启插件
// "misra.py"
// ],
"cpp-check-lint.cppcheck.--enable=": "style", //输出信息等级,可选为all, warning, style, performance, portability, information, unusedFunction, missingInclide
关于"cpp-check-lint.cppcheck.–enable="字段设置输出信息等级说明:
推荐博文
tasks.json文件、lauch.json、c_cpp_properties.json、setting.json文件的区别与联系
tasks.json与lauch.json关系:
task.json的作用是编译;而 launch.json的作用的执行命令;
在没有生产可执行文件的时候,不能直接点启动运行按钮,要先使用 shift + ctrl + B 进行编译(也就是执行task.json的command命令),然后才可以点击启动按钮
tasks.json文件的格式有一些规范,一般包含4个部分:
在tasks.json文件中,我们配置的任务会被保存为一组不同的选项。我们可以通过以下几个属性设置任务:
type:任务的类型。有多种类型,比如执行命令、传统的编译和构建任务等
。command:要执行的命令(比如编译器的文件名)和传递给该命令的一组参数
。args:作为一个数组,提供给command命令的参数
。args为当前编译器的参数,配合vs相关变量使用,这里列出一些常用的变量
其他编译器的参数可以参考:GCC 参数详解
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"args": ["build"],
//"args": ["${file}"] //${file}表示当前打开的文件
//"args": ["${workspaceRoot}"] //${workspaceRoot}表示打开的项目目录。
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "test",
"type": "shell",
"command": "make",
"args": ["test"],
"problemMatcher": [],
"group": {
"kind": "test",
"isDefault": true
},
"dependsOn": ["build"]//使用了dependsOn属性,表示先执行第一个任务。
}
]
}
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
可以在此基础上修改
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/main",
//"program": "输入程序名称,例如 ${workspaceFolder}/a.out",(修改前)
//此处表示程序编译build后生成的文件路径和名字(此处可执行文件名为a.out)
//路径和名字都可以自定义
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
//在此处添加一行代码,这里的main应该与上方的program中的可执行文件名相同
"preLaunchTask":"main"
}
]
}
program
MIMode
preLaunchTask
参考博文:
VScode配置task和launch支持C++11
ubuntu + VScode + C++ + openCV 运行调试launch.json和task.json编写
name:这是用于标记使用的平台的标签。除了win32还可以选Linux或Mac。也就是说,这个json里“configuration“下可以写三组配置,只要每组配置前面写上不同的平台,即可在不同的操作系统上使用就会自动适配不同的配置。
includePath:头文件路径。第一个目录是C语言标准库的目录, 剩下的几个目录直接从Makefile里复制然后稍微修改下即可。"${workspaceFolder}"表示项目文件夹;
defines:全局宏定义。
compilerPath:编译器的路径。
intelliSenseMode:因为我用的是gcc所以选gcc-x64。
browse:源文件搜索路径。用来做代码补全和查找定义的。这个路径和includePath不同,browse.path是自动递归所有子目录的。而include.path默认只看本目录。
换行符的区别
高频使用快捷键:
在 Ctrl+P 窗口下还可以:
直接输入文件名,跳转到文件
? 列出当前可执行的动作
! 显示 Errors或 Warnings,也可以 Ctrl+Shift+M
: 跳转到行数,也可以 Ctrl+G 直接进入
@ 跳转到 symbol(搜索变量或 者函数),也可以 Ctrl+Shift+O 直接进入
@ 根据分类跳转 symbol,查找属性或函数,也可以 Ctrl+Shift+O 后输入:进入
#根据名字查找 symbol,也可以 Ctrl+T
快捷键:编辑器与窗口管理
打开一个新窗口:Ctrl+Shift+N
关闭窗口:Ctrl+Shift+W
同时打开多个编辑器(查看多个文件)
新建文件 Ctrl+N
文件之间切换 Ctrl+Tab
切出一个新的编辑器(最多 3 个) Ctrl+\,也可以按住 Ctrl 鼠标点击 Explorer 里的文件名
左中右 3 个编辑器的快捷键 Ctrl+1 Ctrl+2 Ctrl+3
ctrl + 按键1左边的符号显示隐藏终端面板
ctrl + shift + c在外部打开终端并定位到当前项目路径
3 个编辑器之间循环切换 Ctrl+
快捷键:格式调整
代码行缩进 Ctrl+[ 、 Ctrl+]
Ctrl+C 、 Ctrl+V 复制或剪切当前行/当前选中内容
代码格式化:Shift+Alt+F,或 Ctrl+Shift+P 后输入 format code
上下移动一行:Alt+Up 或 Alt+Down
向上向下复制一行:Shift+Alt+Up 或 Shift+Alt+Down
在当前行下边插入一行 Ctrl+Enter
在当前行上方插入一行 Ctrl+Shift+Enter
ctrl+k:再加f ,格式化操作,可以格式化json数据
快捷键:光标相关
移动到行首:Home
移动到行尾:End
移动到文件结尾:Ctrl+End
移动到文件开头:Ctrl+Home
移动到定义处:F12
定义处缩略图:只看一眼而不跳转过去 Alt+F12
移动到后半个括号:Ctrl+Shift+]
选择从光标到行尾:Shift+End
选择从行首到光标处:Shift+Home
删除光标右侧的所有字:Ctrl+Delete
扩展/缩小选取范围:Shift+Alt+Left 和 Shift+Alt+Right
多行编辑(列编辑):Alt+Shift+鼠标左键,Ctrl+Alt+Down/Up
同时选中所有匹配:Ctrl+Shift+L
Ctrl+D 下一个匹配的也被选中 (在 sublime 中是删除当前行,后面自定义快键键中,设置与 Ctrl+Shift+K 互换了)
回退上一个光标操作:Ctrl+U
alt + 单机左键 添加多处光标
alt + shift + 单击左键 同一列所有位置添加光标
alt + shift + 鼠标选择 选择相同开始和结束的区域
快捷键:重构代码
找到所有的引用:Shift+F12
同时修改本文件中所有匹配的:Ctrl+F12
重命名:比如要修改一个方法名,可以选中后按 F2,输入新的名字,回车,会发现所有的文件都修改了
跳转到下一个 Error 或 Warning:当有多个错误时可以按 F8 逐个跳转
查看 diff:在 explorer 里选择文件右键 Set file to compare,然后需要对比的文件上右键选择 Compare with file_name_you_chose
快捷键:查找替换
查找 Ctrl+F
查找替换 Ctrl+H
整个文件夹中查找 Ctrl+Shift+F
快捷键:显示相关
全屏:F11
zoomIn/zoomOut:Ctrl +/-
侧边栏显/隐:Ctrl+B
显示资源管理器 Ctrl+Shift+E
显示搜索 Ctrl+Shift+F
显示 Git Ctrl+Shift+G
显示 Debug Ctrl+Shift+D
显示 Output Ctrl+Shift+U
固定打开的文件