vscode 基础编程环境搭建

  • 一、配置C/C++环境
    • 1、下载minGW
    • 2、下载vscode
    • 3、配置clang-format
      • 默认配置
      • 自定义配置
      • 注意
      • 我的 .clang-format 配置
      • 参考
  • 二、同步配置

一、配置C/C++环境

1、下载minGW

官网:可以把下载链接贴到迅雷中,下载更快~

配置环境变量,并重启电脑(很重要!)

2、下载vscode

打开一个新建文件夹,新建一个test.c文件,随便写点东西

点击F5运行,在弹出的窗口中点击第一个,会自动生成tasks.json、launch.json文件。如果不自动生成,参照下面的:

注意:相关路径填写自己的,如下面的gcc.exe和gdb.exe的路径

// tasks.json
{"tasks": [{"type": "shell","label": "task g++","command": "D:\\code\\develop\\mingw64\\bin\\gcc.exe", // 改成自己电脑minGW配置的gcc路径"args": ["-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}],"version": "2.0.0"
}
// launch.json
{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "gcc.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:\\code\\develop\\mingw64\\bin\\gdb.exe", // 改成自己电脑minGW配置的gdb路径"setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "task g++" // 这个就是tasks.json文件中的label}]
}

3、配置clang-format

默认配置

安装clang-format拓展

打开setting.json文件,填入以下内容:

注意:clang-format.executable的路径也是填写自己的

{// "editor.formatOnSave": true,"clang-format.executable": "C:\\Users\\19447\\.vscode\\extensions\\ms-vscode.cpptools-1.9.8-win32-x64\\LLVM\\bin\\clang-format","[cpp]": {"editor.defaultFormatter": "xaver.clang-format"},/* 让 Tab 键缩进 4 个空格 */"editor.detectIndentation": false,"editor.tabSize": 4,"files.insertFinalNewline": true // 文件末尾添加空行
}

自定义配置

以上格式化后是按照 Clang-format 默认的格式,默认的缩进只有两个空格,看上去十分不清晰,可以修改部分格式。

进入cmd或vscode下的终端,输入如下命令进入到指定目录(用户名和版本号改成你自己的):

cd C:\Users\你的用户名\.vscode\extensions\ms-vscode.cpptools-版本号\LLVM\bin

然后输入:

clang-format -style=Google -dump-config > .clang-format

目录下会生成.clang-format文件,将其拷贝到你的工作区根目录下,打开编辑该文件,修改缩进宽度为 4:

IndentWidth:     4

更多配置可参考clang官方文档

注意

1、 .clang-format文件中不能带有汉字!注释的汉字也不行!!!

2、.clang-format文件的编码格式一定要是UTF-8

3、上面安装了clang-format扩展之后,环境中就会有两个formatter了,右键-Format Document With,选中Clang-Format就行。

我的 .clang-format 配置

---
BasedOnStyle: Google
---
Language: Cpp
AccessModifierOffset: -4
# AlignAfterOpenBracket: Align
# AlignConsecutiveMacros: false
# AlignConsecutiveAssignments: false
# AlignConsecutiveDeclarations: false
# AlignEscapedNewlines: Left
# AlignOperands: true
# AlignTrailingComments: true
# AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: false
# AllowAllParametersOfDeclarationOnNextLine: true
# AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: true
# AllowShortFunctionsOnASingleLine: All
# AllowShortLambdasOnASingleLine: All
# AllowShortIfStatementsOnASingleLine: WithoutElse
# AllowShortLoopsOnASingleLine: true
# AlwaysBreakAfterDefinitionReturnType: None
# AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
# AlwaysBreakTemplateDeclarations: Yes
# BinPackArguments: true
# BinPackParameters: true
BraceWrapping:# AfterCaseLabel: falseAfterClass: trueAfterControlStatement: AlwaysAfterEnum: trueAfterFunction: true# AfterNamespace: false# AfterObjCDeclaration: falseAfterStruct: trueAfterUnion: trueAfterExternBlock: trueBeforeCatch: trueBeforeElse: true# IndentBraces: false# SplitEmptyFunction: true# SplitEmptyRecord: true# SplitEmptyNamespace: true
# BreakBeforeBinaryOperators: None
BreakBeforeBraces: WebKit
# BreakBeforeInheritanceComma: false
# BreakInheritanceList: BeforeColon
# BreakBeforeTernaryOperators: true
# BreakConstructorInitializersBeforeComma: false
# BreakConstructorInitializers: BeforeColon
# BreakAfterJavaFieldAnnotations: false
# BreakStringLiterals: true
# ColumnLimit: 80
CommentPragmas: "^ NOLINT:"
# CompactNamespaces: false
# ConstructorInitializerAllOnOneLineOrOnePerLine: true
# ConstructorInitializerIndentWidth: 4
# ContinuationIndentWidth: 4
# Cpp11BracedListStyle: true
# DeriveLineEnding: true
# DerivePointerAlignment: true
# DisableFormat: false
# ExperimentalAutoDetectBinPacking: false
# FixNamespaceComments: true
# ForEachMacros:
#   - foreach
#   - Q_FOREACH
#   - BOOST_FOREACH
# IncludeBlocks: Regroup
# IncludeCategories:
#   - Regex: '^<ext/.*\.h>'
#     Priority: 2
#     SortPriority: 0
#   - Regex: '^<.*\.h>'
#     Priority: 1
#     SortPriority: 0
#   - Regex: "^<.*"
#     Priority: 2
#     SortPriority: 0
#   - Regex: ".*"
#     Priority: 3
#     SortPriority: 0
# IncludeIsMainRegex: "([-_](test|unittest))?$"
# IncludeIsMainSourceRegex: ""
# IndentCaseLabels: true
# IndentGotoLabels: true
# IndentPPDirectives: None
IndentWidth: 4
# IndentWrappedFunctionNames: false
# JavaScriptQuotes: Leave
# JavaScriptWrapImports: true
# KeepEmptyLinesAtTheStartOfBlocks: false
# MacroBlockBegin: ""
# MacroBlockEnd: ""
# MaxEmptyLinesToKeep: 1
# NamespaceIndentation: None
# ObjCBinPackProtocolList: Never
# ObjCBlockIndentWidth: 2
# ObjCSpaceAfterProperty: false
# ObjCSpaceBeforeProtocolList: true
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 1
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakString: 1000
# PenaltyBreakTemplateDeclaration: 10
# PenaltyExcessCharacter: 1000000
# PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Right
# RawStringFormats:
#   - Language: Cpp
#     Delimiters:
#       - cc
#       - CC
#       - cpp
#       - Cpp
#       - CPP
#       - "c++"
#       - "C++"
#     CanonicalDelimiter: ""
#     BasedOnStyle: google
#   - Language: TextProto
#     Delimiters:
#       - pb
#       - PB
#       - proto
#       - PROTO
#     EnclosingFunctions:
#       - EqualsProto
#       - EquivToProto
#       - PARSE_PARTIAL_TEXT_PROTO
#       - PARSE_TEST_PROTO
#       - PARSE_TEXT_PROTO
#       - ParseTextOrDie
#       - ParseTextProtoOrDie
#     CanonicalDelimiter: ""
#     BasedOnStyle: google
# ReflowComments: true
SortIncludes: false
SortUsingDeclarations: false
# SpaceAfterCStyleCast: false
# SpaceAfterLogicalNot: false
# SpaceAfterTemplateKeyword: true
# SpaceBeforeAssignmentOperators: true
# SpaceBeforeCpp11BracedList: false
# SpaceBeforeCtorInitializerColon: true
# SpaceBeforeInheritanceColon: true
# SpaceBeforeParens: ControlStatements
# SpaceBeforeRangeBasedForLoopColon: true
# SpaceInEmptyBlock: false
# SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
# SpacesInAngles: false
# SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
# SpacesInCStyleCastParentheses: false
# SpacesInParentheses: false
# SpacesInSquareBrackets: false
# SpaceBeforeSquareBrackets: false
Standard: Cpp11
# StatementMacros:
#   - Q_UNUSED
#   - QT_REQUIRE_VERSION
TabWidth: 4
# UseCRLF: false
UseTab: Always

参考

clang Docs

clang 15.0.0 Docs

二、同步配置

直接使用vscode自带的sync功能,如果没有,需要将vscode升级到较新版本

无论是上传还是下载配置,都是如下操作:

1、点击界面左下方齿轮 Manage - Turn on Settings Sync…

2、勾选需要同步的内容,随后点击右上角的 Sign in & Turn on

3、这里有两种登录方式:Github 和 Microsoft。以Github为例,点击第一个

4、如果是第一次登录,则会自动跳转到Github的登录界面,登录即可。由于我之前登录过,所以上图点击后会自动登录。

5、开始同步丝滑之旅~

  • 上传:Shift + Alt + U
  • 下载:Shift + Alt + D

如果快捷键失效,直接 Shift + Ctrl + P 进入命令面板,搜索sync即可

《高效玩转 vscode》- 1:基础编程环境搭建相关推荐

  1. Java基础第一讲:Java的故事和Java编程环境搭建

    { Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2.2.3.3及3.0版本讲解 <ANDROID学习指南>目录 RSS Java基础第一讲:Jav ...

  2. Python编程基础——编程环境准备工作

    Python编程基础--编程环境准备工作 Anaconda的安装与使用 介绍 下载与安装(本文仅以Win10为例) Pip的基本使用与镜像源设置 介绍 Pip镜像源设置(本文仅以Win10为例) Pi ...

  3. Java从入门到实战总结-1.1、Java基础之环境搭建和eclipse安装

    Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 文章目录 Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 1.Hello Java 1.1. ...

  4. 1 计算机基础和环境搭建

    二刷路飞学院的Python全栈开发 此课程是在2018年购买的,并在2019年下半年,学完了8章内容,并且让我成功跳槽找到了更好的工作,虽然现在已经又换了一家工作.但是,这个课程是让我全面的学习了Py ...

  5. day01 计算机基础和环境搭建

    day01 计算机基础和环境搭建 课程目标:让大家了解计算机基础知识并完成python的环境搭建 课程概要: 计算机基础 编程的本质 python的介绍 python环境的搭建 1.计算机基础 1.1 ...

  6. Spark学习之路一——Spark基础及环境搭建

    Spark学习之路一--Spark基础及环境搭建 文章目录 一. Spark 概述 1.1 概述 1.2 优势特性 1.2.1 运行速度快 1.2.2 容易使用 1.2.3 通用性 1.2.4 运行模 ...

  7. Python零基础入门01【计算机基础和环境搭建】

    01–计算机基础和环境搭建 目标:了解计算机基础知识并完成Python的环境搭建 概要: 计算机基础 编程的本质 Python的介绍 Python环境搭建 1.计算机基础 1.1基本概念 计算机的组成 ...

  8. 轩小陌的Python笔记:day01 计算机基础和环境搭建

    day01 计算机基础和环境搭建 课程目标:了解计算机的基础知识并完成python的环境搭建 课程概要: 计算机基础 编程的本质 Python的介绍 Python环境的搭建 1.计算机基础 1.1基本 ...

  9. Redis之Redis基础、环境搭建、主从切换

    Redis基础.环境搭建.主从切换 一.Redis简介 1.引入NoSQL的背景 2.Redis简介 二.环境部署 1.server1源码安装redis,并创建redis实例 2.server2主机, ...

最新文章

  1. python加上子类的特性_Python--面向对象三大特性
  2. SilverlightMMORPG窝窝世界明天4月28日封测
  3. QuickTime 0day ***代码发布,可能允许执行任意代码
  4. 《Nmap渗透测试指南》—第1章1.2节Windows下安装Nmap
  5. 你给需求文档,AI就能帮你开发安卓App
  6. Bluetooth协议栈
  7. leetcode 380. Insert Delete GetRandom O(1) | 380. O(1) 时间插入、删除和获取随机元素(Java)
  8. Error message COM_PRODUCT 503 Data cannot be maintained for set type COM_TA_R3_ID
  9. mysql 建立索引_mysql建立索引的原则
  10. 服务器端修改yapi-cli默认IP,centos部署yapi
  11. 解决Android 应用运行报Unable to resolve superclass of L错误
  12. 游戏动作3d模型素材推荐 精品 小众
  13. 51单片机外部中断使用示例程序
  14. 浅析地理数据模型发展
  15. vue 使用echarts 进行简单封装统一使用
  16. 关于dd命令的使用以及详解
  17. 录屏工具ScreenToGif功能总结
  18. springmvc的过滤器--Filter
  19. 基于51单片机的DS1302实时时钟程序
  20. 如果改计算机mac,怎么修改计算机mac_修改计算机mac

热门文章

  1. 基于Blinker物联网+Esp8266的燃气灶温度与燃气残留浓度监控装置的设计与实现(完)
  2. 程序员碰到哪种公司要赶快提桶跑路
  3. 2013 Mac Air 装Win7双系统问题-安装程序无法创建新的分区,也无法定位系统 Windows无法安装所需的文件,错误代码0x80070570
  4. 光猫就能设置wifi,还用花钱买路由器吗?
  5. Jetpack Compose - TextField
  6. Xavier连WiFi,你还在用网线凑合?
  7. 木木的Java知识整理——JDBC与MyBatis的区别
  8. pin、pin2、puk、puk2
  9. win10 在线、离线安装microsoft store 版 WSL
  10. Python汉诺塔 费布拉奇数列