VScode的插件和.json文件和快捷键

news2024/12/23 17:09:38

文章目录

  • 1. 插件
    • 了解插件的配置的修改
    • Remote Development
    • Filter Line
    • C/C ++ 和 C++ intellisense(弃用)
    • cpp-check-lint
  • 2. VScode中的.json文件
    • 2.1 tasks.json
      • tasks.json文件的格式
      • tasks.json文件中任务的配置
        • arg参数选择
      • 案例:
    • 2.2 lauch.json
      • 参数介绍
    • 2.3 c_cpp_properties.json
  • 3. 标识与快捷键

1. 插件

了解插件的配置的修改

  • 一般安装完插件之后可能会进行配置,按下ctrl+shift+p,输入要设置的文件,例如:user settings(用户设置)
    在这里插入图片描述
  • 如果选择非JSON文件则是在可视化界面进行配置,如果使用JSON文件的形式打开则可以复制别人的代码去修改配置
  • 点击右上角的文件按钮会在两个文件之间进行切换
    在这里插入图片描述

Remote Development

  • 该插件可以连接虚拟机,首先vscode支持在ubuntu系统下安装,但是可能会存在内存问题,通过远程连接就可以不用在ubuntu中安装编辑器,具体使用可以阅读博文VScode远程连接虚拟机(ubuntu系统)

Filter Line

  • 是一款日志过滤插件

使用步骤:

  1. ctrl+shift+p 打开指令输入框
  2. 输入filter,选择filter line by input regex
  3. 初次输入选择new pattern,就可以输入要过滤出来的关键词,如果输入过会有记录
  4. 会在当前目录下生成一个过滤好的文件

  • 如果过滤后的内容还是有不想要的内容,可以考虑使用下面的方法,删除包含关键词的指定行

执行步骤:

  1. Ctrl+ F 打开查找
  2. 粘贴你的字符串。
  3. Alt-Enter 以选择页面上字符串的所有实例.
  4. Ctrl +L将选择范围扩大到页面上每个实例的整行
  5. 删除/退格以除这些行。

C/C ++ 和 C++ intellisense(弃用)

  • 内含代码跳转功能插件
  • 安装之后记得关闭编译器再重新打开

使用步骤:

  1. 在VS code界面按 ctrl+shift+P ,然后输入configurations ,选择红色框

在这里插入图片描述

  1. 选择VS code 文件目录中常用的文件夹,可以选择“user”

  2. 然后会发现在根目录下会创建.vscode文件夹下,多了c_cpp_properties.json文件

  3. 点击新生成的json文件,在includePath 中添加想要跳转的文件所在的路径,建议使用相对路径,设置之后也是重启编辑器才会生效
    在这里插入图片描述

注意:cppStandard表示当前代码的cpp版本,如果不对需要更换版本,最常用的是C++11

cpp-check-lint

  • 作用:静态代码检查工具,支持c, c++ 代码,主要用于检测内存泄漏

  • 检查的内容:

    1. 自动变量检查
    2. 数组的边界检查
    3. class类检查
    4. 过期的函数,废弃函数调用检查
    5. 异常内存使用,释放检查
    6. 内存泄漏检查,主要是通过内存引用指针
    7. 操作系统资源释放检查,中断,文件描述符等
    8. 异常STL 函数使用检查
    9. 代码格式错误,以及性能因素检查

使用步骤:

  • 1、在设置中追加加入以下代码:
/* 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="字段设置输出信息等级说明:

    • warning:为了预防bug防御性编程建议信息
    • style:编码格式问题(没有使用的函数、多余的代码等)
    • performance:建议优化该部分代码的性能
    • portability:移植性警告。该部分如果移植到其他平台上,可能出现兼容性问题
    • information:一些有趣的信息,可以忽略不看的。
    • unusedFunction:未使用的函数
    • missingInclide:缺少头文件
  • 2、右键会有几个选项
    在这里插入图片描述

  • 3、此时如果文件中有代码问题会报错
    在这里插入图片描述

推荐博文

  • 【代码质量】静态代码检测pc-lint, visual lint, cpp-check(pclint、cppcheck、TscanCode)

2. VScode中的.json文件

tasks.json文件、lauch.json、c_cpp_properties.json、setting.json文件的区别与联系

tasks.json与lauch.json关系:

  • task.json的作用是编译;而 launch.json的作用的执行命令;

  • 在没有生产可执行文件的时候,不能直接点启动运行按钮,要先使用 shift + ctrl + B 进行编译(也就是执行task.json的command命令),然后才可以点击启动按钮

2.1 tasks.json

  • 作用:告诉VSCode代码如何进行编译、运行、调试等操作,自动化执行一些重复的任务,调试问题也变得更加高效
  • 生成快捷键:ctrl + shift + p --> 输入task --> 选择Task:Configure Task -->使用模块创建 tasks.json文件 --> others

tasks.json文件的格式

tasks.json文件的格式有一些规范,一般包含4个部分:

  • 1、version:指定tasks.json文件的版本。
  • 2、tasks:定义一个或多个要执行的任务。
  • 3、options:为所有任务都提供一些默认值,如运行、调试、编译、清理选项。
  • 4、input:配置一些交互式的任务。

tasks.json文件中任务的配置

在tasks.json文件中,我们配置的任务会被保存为一组不同的选项。我们可以通过以下几个属性设置任务:

  • 1、label:任务的名称。
  • 2、type:任务的类型。有多种类型,比如执行命令、传统的编译和构建任务等
  • 3、command:要执行的命令(比如编译器的文件名)和传递给该命令的一组参数
  • 4、args:作为一个数组,提供给command命令的参数
  • 5、options:执行命令时使用的选项。
  • 6、problemMatcher:指定问题匹配器的ID,处理命令输出
  • 7、group: 组
  • 8、detail: 提示内容

arg参数选择

args为当前编译器的参数,配合vs相关变量使用,这里列出一些常用的变量

  • ${userHome} - the path of the user’s home folder
  • ${workspaceFolder} - the path of the folder opened in VS Code
  • ${workspaceFolderBasename} - the name of the folder opened in VS Code without any slashes (/)
  • ${file} - the current opened file
  • ${fileWorkspaceFolder} - the current opened file’s workspace folder
  • ${relativeFile} - the current opened file relative to workspaceFolder
  • ${relativeFileDirname} - the current opened file’s dirname relative to workspaceFolder
  • ${fileBasename} - the current opened file’s basename
  • ${fileBasenameNoExtension} - the current opened file’s basename with no file extension
  • ${fileDirname} - the current opened file’s dirname
  • ${fileExtname} - the current opened file’s extension
  • ${cwd} - the task runner’s current working directory upon the startup of VS Code
  • ${lineNumber} - the current selected line number in the active file
  • ${selectedText} - the current selected text in the active file
  • ${execPath} - the path to the running VS Code executable
  • ${defaultBuildTask} - the name of the default build task
  • ${pathSeparator} - the character used by the operating system to separate components in file paths

其他编译器的参数可以参考: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属性,表示先执行第一个任务。
    }
  ]
}

2.2 lauch.json

  • 作用:用于运行和调试的配置文件

  • 点开一个需要调试的文件,然后点击创建,系统会根据你所点开的文件的类型去匹配环境

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 默认生成文件

{
    // 使用 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

    • program参数表示可执行文件的位置,如果找不到可执行文件,debug会报错。
    • 这里一定注意 要和task中build任务生成目录一致
  • MIMode

    • 这里指定要使用的调试程序
    • 如果是gcc编译就用gdb
    • 如果是llvm编译就用lldb
  • preLaunchTask

    • 这里指定的是launch前置任务,一般用于生成可调式的二进制文件
    • 因为已经生成了一个task,直接调用前一个task即可。preLaunchTask的值与task的label的值相匹配

参考博文:
VScode配置task和launch支持C++11
ubuntu + VScode + C++ + openCV 运行调试launch.json和task.json编写

2.3 c_cpp_properties.json

  • 作用:VS Code只是一个编辑器,它检查代码的时候并不会去读makefile,因此有些宏定义需要自行配置。c_cpp_properties.json的作用就是配置工程的头文件、工具链、宏定义等参数。
    • name:这是用于标记使用的平台的标签。除了win32还可以选Linux或Mac。也就是说,这个json里“configuration“下可以写三组配置,只要每组配置前面写上不同的平台,即可在不同的操作系统上使用就会自动适配不同的配置。

    • includePath:头文件路径。第一个目录是C语言标准库的目录, 剩下的几个目录直接从Makefile里复制然后稍微修改下即可。"${workspaceFolder}"表示项目文件夹;

    • defines:全局宏定义。

    • compilerPath:编译器的路径。

    • intelliSenseMode:因为我用的是gcc所以选gcc-x64。

    • browse:源文件搜索路径。用来做代码补全和查找定义的。这个路径和includePath不同,browse.path是自动递归所有子目录的。而include.path默认只看本目录。

3. 标识与快捷键

换行符的区别
在这里插入图片描述

高频使用快捷键:

在这里插入图片描述
在 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+k然后按 Left或 Right
    ↓ 代码编辑相关的快捷键 ↓

快捷键:格式调整

  • 代码行缩进 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

固定打开的文件

  • 双击标题栏或文件栏中的文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字逻辑复习重点总结

文章目录 前言第一章第二章第三章第四章第五章第六章第七章:第八章总结 前言 因为要期末考试了所以就将知识点进行了总结,把期末要考的知识点分章节进行划分,以至于我能取得一个好成绩。 第一章 进制转换 8421码、2421码、余3码、格雷码&am…

Creating Serial Numbers (C#)

此示例展示如何使用Visual C#编写的Add-ins为文件数据卡生成序列号。 注意事项: SOLIDWORKS PDM Professional无法强制重新加载用.NET编写的Add-ins,必须重新启动所有客户端计算机,以确保使用Add-ins的最新版本。 SOLIDWORKS PDM Professio…

购买一套WMS仓储管理系统要多少钱

随着电商行业的快速发展,仓储物流行业也逐渐成为了人们关注的焦点。WMS仓储管理系统作为物流管理领域的重要工具,在提高仓库管理效率、降低运营成本方面具有重要作用。那么,购买一套WMS仓储管理系统要多少钱呢? 首先,我…

Vue开发实战(03)-组件化开发

对组件功能的封装,可以像搭积木一样开发网页。 Vue官方的示例图对组件化开发的形象展示。左边是一个网页,可以按照功能模块抽象成很多组件,这些组件就像积木一样拼接成网页。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直…

Lecture 21 Summarisation

目录 Extractive: Single-DocExtractive: Multi-DocAbstractive: Single-DocEvaluationConclusion summarisation Distill the most important information from a text to produce shortened or abridged versionExamples outlines of a documentabstracts of a scientific ar…

MapReduce【小文件的优化-Sequence文件】

在实际开发中,我们肯定希望提高MapReduce的工作效率,其实提高MapReduce的效率,无非就是提高Map阶段和Reduce阶段的效率。 Map阶段优化之小文件问题 我们知道Map阶段中的MapTask个数是与InputSplit的个数有关的,一般一个InputSpl…

《微服务实战》 第二十八章 分布式锁框架-Redisson

前言 Redisson 在基于 NIO 的 Netty 框架上,充分的利⽤了 Redis 键值数据库提供的⼀系列优势,在Java 实⽤⼯具包中常⽤接⼝的基础上,为使⽤者提供了⼀系列具有分布式特性的常⽤⼯具类。使得原本作为协调单机多线程并发程序的⼯具包获得了协调…

VR全景营销颠覆传统营销模式,让商企博“出圈”

在激烈的市场竞争中,营销成为了商企博“出圈”的重要课题,随着5G的到来,VR全景迈入了快速发展时期,随着VR全景的普及应用,商业领域也逐渐引入了VR全景营销。 时下,商企的营销是越发困难,传统的营…

币圈下半年重点之一:以太坊坎昆升级,将带来哪些实质性利好?

近期BRC-20大火,主打价值存储的比特币竟然生态比以太坊还热,但要论生态,以太坊才是真正的王者,因为其正在悄悄酝酿下一个重大升级——坎昆(Dencun)升级。 最新消息,以太坊开发者已经就Dencun升级…

【MySQL高级篇笔记-数据库的设计规范(中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、为什么要数据库设计 二、范式 1、范式简介 2、范式都包括哪些 3、键和相关属性的概念 4、第一范式(1st NF) 5、第二范式(2nd NF) 6、第三范式(3rd NF) 7、小结 三、反范式化 1、概述 2、 应用举例 3、反范式的新问…

逆向分析高薪就业:学习Android逆向开发,拥抱行业机会!

简述 Android 逆向开发是指利用各种技术手段对安卓应用程序进行逆向分析和研究,以了解应用程序的内部机制,发现应用程序中的漏洞、脆弱性或者安全问题,并提供相关的解决方案。逆向开发技术可以帮助开发人员更好地了解应用程序的构成、运行机…

Django实现接口自动化平台(六)httprunner(2.x)基本使用【持续更新中】

上一章: Django实现接口自动化平台(五)httprunner(2.x)基本使用【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章: 一、 api 文件夹(没有任何数据依赖的场景) api 文件夹&…

一键生成代码

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

(五)CSharp-进一步理解接口

一、什么是接口 接口是指定一组函数成员而不实现它们的引用类型。 实现接口: 只能由类和结构来实现接口。 二、声明接口 接口声明不能包含以下成员: 数据成员静态成员 接口声明只能包含如下类型的非静态成员函数的声明: 方法属性事件索…

25张python代码速查表,让你python能力突飞猛进的秘诀!

在学习函数时,总是会有很多东西学得很快,遗忘得也很快。但其实在学习中,只需要知道相关参数,加以调整就够了。所以你可能需要这本秘籍! 即整理了Python科学速查表,就可以帮你解决以上的问题。当你在练习的时…

怎样正确做 Web 应用的压力测试?字节8年测试5个步骤给我看师了

Web应用,通俗来讲就是一个网站,主要依托于浏览器来访问其功能。 那怎么正确做网站的压力测试呢? 提到压力测试,我们想到的是服务端压力测试,其实这是片面的,完整的压力测试包含服务端压力测试和前端压力测…

高可用系统架构总结

文章目录 系统设计的一些原则海恩法则墨菲定律 软件架构中的高可用设计什么是高可用故障的度量与考核解决高可用问题具体方案 集群化部署负载均衡负载均衡实现内部服务外部服务数据库 负载均衡算法round-robinip_hashhash key 失败重试健康检查TCPHTTP 隔离线程隔离进程隔离集群…

华秋观察 | 通讯产品 PCB 面临的挑战,一文告诉你

印制电路板是电子产品的关键电子互联件,被誉为“电子产品之母”。随着电子产品相关技术应用更快发展、迭代、融合,PCB作为承载电子元器件并连接电路的桥梁,为满足电子信息领域的新技术、新应用的需求,行业将迎来巨大的挑战和发展机…

rocky9脚本py格式

在linux7上编写/root/CreateFile.py的python3脚本,创建20个文件/root/test/File01至/root/test/File20,如果文件存在,则先删除再创建;每个文件的内容同文件名,如File01文件的内容为”File01” 先在root目录下建立所需…

使用单片机遇到的几个问题及解决方案1

1.为什么我跟着视频学习的过程中,我没有找到“端口"的选项呢?我甚至没有出现“其他插口”。 想要找到设备管理器最快的方法就是: 首先如果把输入法调为大写形式,然后按下“WINX”,再按“M”就会出现一个设备管理…