《高效玩转 vscode》- 1:基础编程环境搭建
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:基础编程环境搭建相关推荐
- Java基础第一讲:Java的故事和Java编程环境搭建
{ Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2.2.3.3及3.0版本讲解 <ANDROID学习指南>目录 RSS Java基础第一讲:Jav ...
- Python编程基础——编程环境准备工作
Python编程基础--编程环境准备工作 Anaconda的安装与使用 介绍 下载与安装(本文仅以Win10为例) Pip的基本使用与镜像源设置 介绍 Pip镜像源设置(本文仅以Win10为例) Pi ...
- Java从入门到实战总结-1.1、Java基础之环境搭建和eclipse安装
Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 文章目录 Java从入门到实战总结-1.1.Java基础之环境搭建和eclipse安装 1.Hello Java 1.1. ...
- 1 计算机基础和环境搭建
二刷路飞学院的Python全栈开发 此课程是在2018年购买的,并在2019年下半年,学完了8章内容,并且让我成功跳槽找到了更好的工作,虽然现在已经又换了一家工作.但是,这个课程是让我全面的学习了Py ...
- day01 计算机基础和环境搭建
day01 计算机基础和环境搭建 课程目标:让大家了解计算机基础知识并完成python的环境搭建 课程概要: 计算机基础 编程的本质 python的介绍 python环境的搭建 1.计算机基础 1.1 ...
- Spark学习之路一——Spark基础及环境搭建
Spark学习之路一--Spark基础及环境搭建 文章目录 一. Spark 概述 1.1 概述 1.2 优势特性 1.2.1 运行速度快 1.2.2 容易使用 1.2.3 通用性 1.2.4 运行模 ...
- Python零基础入门01【计算机基础和环境搭建】
01–计算机基础和环境搭建 目标:了解计算机基础知识并完成Python的环境搭建 概要: 计算机基础 编程的本质 Python的介绍 Python环境搭建 1.计算机基础 1.1基本概念 计算机的组成 ...
- 轩小陌的Python笔记:day01 计算机基础和环境搭建
day01 计算机基础和环境搭建 课程目标:了解计算机的基础知识并完成python的环境搭建 课程概要: 计算机基础 编程的本质 Python的介绍 Python环境的搭建 1.计算机基础 1.1基本 ...
- Redis之Redis基础、环境搭建、主从切换
Redis基础.环境搭建.主从切换 一.Redis简介 1.引入NoSQL的背景 2.Redis简介 二.环境部署 1.server1源码安装redis,并创建redis实例 2.server2主机, ...
最新文章
- python加上子类的特性_Python--面向对象三大特性
- SilverlightMMORPG窝窝世界明天4月28日封测
- QuickTime 0day ***代码发布,可能允许执行任意代码
- 《Nmap渗透测试指南》—第1章1.2节Windows下安装Nmap
- 你给需求文档,AI就能帮你开发安卓App
- Bluetooth协议栈
- leetcode 380. Insert Delete GetRandom O(1) | 380. O(1) 时间插入、删除和获取随机元素(Java)
- Error message COM_PRODUCT 503 Data cannot be maintained for set type COM_TA_R3_ID
- mysql 建立索引_mysql建立索引的原则
- 服务器端修改yapi-cli默认IP,centos部署yapi
- 解决Android 应用运行报Unable to resolve superclass of L错误
- 游戏动作3d模型素材推荐 精品 小众
- 51单片机外部中断使用示例程序
- 浅析地理数据模型发展
- vue 使用echarts 进行简单封装统一使用
- 关于dd命令的使用以及详解
- 录屏工具ScreenToGif功能总结
- springmvc的过滤器--Filter
- 基于51单片机的DS1302实时时钟程序
- 如果改计算机mac,怎么修改计算机mac_修改计算机mac
热门文章
- 基于Blinker物联网+Esp8266的燃气灶温度与燃气残留浓度监控装置的设计与实现(完)
- 程序员碰到哪种公司要赶快提桶跑路
- 2013 Mac Air 装Win7双系统问题-安装程序无法创建新的分区,也无法定位系统 Windows无法安装所需的文件,错误代码0x80070570
- 光猫就能设置wifi,还用花钱买路由器吗?
- Jetpack Compose - TextField
- Xavier连WiFi,你还在用网线凑合?
- 木木的Java知识整理——JDBC与MyBatis的区别
- pin、pin2、puk、puk2
- win10 在线、离线安装microsoft store 版 WSL
- Python汉诺塔 费布拉奇数列