Visual Studio Code Guide
Visual Studio Code
- 关于编译运行C/C++的配置安装指南
- 关于安装运行python的指南
前言
上大学很多朋友可能会遇到编程课程,会学习到C/C++
的一些初步知识,相较于dev c++
我更推荐各位有能力者使用Visual Studio Code
(以下简称为VSCode
)进行编程与开发,由于开源和丰富的插件扩展,更新迭代和新功能加入的速度很快,同时它的颜值一定会让你欲罢不能,它会为你提供更加广阔的学习前景和诸如Leetcode
刷题等等的功能。
对于C/C++语言初学者的优势
- 比Visual Studio的空间占用小很多(虽然大于Dev C++)。
- 不需要每个源文件都新建一个单独的项目,各文件相互独立(此项由
tasks.json
和launch.json
中的配置决定)。 - 将所有源代码可以分类整理,一个程序直接新建文件且均可以轻松从文件资源管理器中找到。
- C/C++扩展自带的中文报错提示,方便初学者查看错误。
总而言之,计算机方面的学习,要从学会合理运用搜索引擎以及看文档看博客开始,希望你从我这篇博客起步,不断学习。
VSCode的安装
需要的工具
- Windows 10操作系统
- VSCode安装包下载地址
- 暂不提供mac/linux的安装教程
- 教程示例平台与版本
- Windows 10 x64 2004
- VSCode version 1.48.2
安装步骤
下载并运行
VSCodeUserSetup-x64-x.x.x.exe
进行常规安装操作。
注:我推荐不更改安装位置,并且在附加任务中“其他”中的四项全部勾选,即将用Code打开加入文件和文件夹添加入右键菜单中,并注册为受支持的文件类型的编辑器。VSCode刚刚安装完成时是英文界面,在窗口左侧四个小方块组成的
Extensions
中搜索Chinese
并安装所示第一个扩展。
依照右下角提示重启VSCode,重启后你应该会看到中文界面了。强烈建议你将设置中的自动保存(Auto save)项目打开(设置为afterDelay)
VSCode可以打开单独的文件进行编辑,但在真实工作学习中利用它的“文件夹”和“工作区”功能会更加频繁。
在“文件夹”模式下,VSCode会把你选择的文件夹在左侧展示出来,并且你可以进行文件夹设置,让每个文件夹有不同的功能。在进行以下步骤之前,我强烈建议你在合适的地方新建一个文件夹(例中称为
C:\Coding
),以下的内容会默认你已经在VSCode中打开了这个文件夹。
C/C++
需要的工具
- TDM-GCC安装包下载地址 备用下载地址(v9.2.0)
- 暂不提供mac/linux的安装教程
- 教程示例平台与版本
- TDM64-GCC version 9.2.0
安装步骤
- 打开并运行
tdm64-gcc-x.x.x.exe
进行安装操作。
你可能需要取消勾选Check for updated files on the TDM-GCC server
以防止因为众所周知的原因导致访问失效而无法继续安装。
依次点击
Create
,选择安装路径(此处以C:\TDM-GCC-64
为例),而后点击Install
安装Recommended所包含的包,安装完成后点击Finish
即可。TDM-GCC
会将运行路径自动添加入系统环境变量中的PATH
,你可以点击 Win + R输入cmd
后运行g++ -v
检查安装是否成功。如果可以看到最后一行显示gcc version x.x.x (tdm64-x)
即安装成功。
配置步骤
此教程仅适用于写小型C/C++程序,大型工程请适当更改步骤。
我默认你了解并清楚部分路径需要自主替换。
此处的文件路径配置会以我推荐的目录结构为例:
├─ .vscode
│ ├─ launch.json
│ └─ tasks.json
├─ Debug
│ ├─ Data
│ │ └─ …
│ ├─ 0.exe
│ └─ 1.exe
└─ Scripts
├─ Folder
│ └─ …
├─ main.cpp
├─ 0.cpp
└─ 1.cpp
请注意,你可以在Scripts
文件夹中任意创建子文件夹并存储代码,这不会影响编译和运行,可以思考一下为什么并推测一下配置机制,只是你需要定期清理Debug
文件夹中的exe文件,或者可以用python
写个脚本一键清理。这需要你自己研究。
打开VSCode至你的文件夹(此处以
C:\Coding
为例)。打开左侧
Extensions
选项卡,搜索c++
并安装C/C++
和C/C++ Intellisence
两个扩展。在根目录新建文件夹
Scripts
以及Debug
在
Scripts
文件夹中新建文件helloworld.cpp
,写下传统的helloworld程序。1
2
3
4
5
6
7
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}单击左侧菜单中的
运行
并点击运行和调试
,选择C++(GDB/LLDB)
。此时VSCode会在你的根目录下新建
.vscode
文件夹,此文件夹中用于存放VSCode的相关配置文件,打开launch.json
替换或修改为如下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",//启动项的名称
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x64",
"program": "${workspaceRoot}/Debug/${fileBasenameNoExtension}.exe",//运行文件的路径
"args": [],//运行文件的参数,一般没有
"stopAtEntry": false,//是否在入口点处暂停
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": false,//是否使用外部控制台窗口
"internalConsoleOptions": "neverOpen",
"MIMode": "gdb",
"miDebuggerPath": "C:/TDM-GCC-64/bin/gdb64.exe",//DEBUG程序的路径
"setupCommands": [{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}],
"preLaunchTask": "Compile"//运行前需要完成的任务
},
]
}在
.vscode
文件夹中新建文件tasks.json
并输入如下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44{
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"command": "g++",//编译程序
"args": [
"-g","${file}", //指定编译源代码文件
"-o","${workspaceRoot}\\Debug\\${fileBasenameNoExtension}.exe", // 指定输出文件名,不加该参数则默认输出a.exe
"-ggdb3", // 生成和调试有关的信息
"-Wall", // 开启额外警告
"-static-libgcc", // 静态链接
"-std=c++2a", //使用C++20标准
"-Wno-format",
"-finput-charset=UTF-8",//输入编译器文本编码 默认为UTF-8
"-fexec-charset=UTF-8"//编译器输出文本编码 自行选择
],
"type": "shell",
"presentation": {
"echo": true,
"reveal": "silent", // 在“终端”中显示编译信息的策略,可以为always,silent,never
"focus": false,
"panel": "shared" // 不同的文件的编译信息共享一个终端面板
},
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative", "\\"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}之后回到
helloworld.cpp
点击 F5并运行,若遇到错误列表显示无法找到或者出现如下错误等问题。1
g++ : 无法将“g++”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
请关闭并重新打开VSCode使其重新加载插件以及Powershell。
VSCode默认情况下无法输出中文,为了修复这个问题你需要引用stdlib.h
或者cstdlib
库,并在输出语句前加入system("chcp 65001");
以改变命令行编码。
1 |
|
- 再次启动VSCode后点击 F5,你应该会看到如下画面。
至此,基础配置结束。
调试步骤
VSCode中的调试体验是远超dev c++的,而断点调试是程序debug过程中十分好用的手段(别再运行中输出信息了啊喂),下面我将教你进行简单的调试工作。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using namespace std;
int main()
{
bool flag = false;
int n = 100;
cout << "{2,";
for (int i = 3; i <= n; i++){
flag = true;
for (int j = 2; j < sqrt(i) + 1; j++){
if(i%j==0){
flag = false;
break;
}
}
if(flag){
cout << i << ",";
}
}
cout << "}" << endl;
return 0;
}点击行号左侧进行“打断点”操作,程序会在红点处暂停运行。
点击 F5运行程序,你会看到如下界面:
在调试控制台
中输入的任何语句都会被立即执行并反馈结果。
右击红点处,选择编辑断点
,可以设置只有满足条件时才进行中断。断点调试的基础操作就是这些,更多功能等待你继续探索。
更多技巧
VSCode中点击 F5是开启调试,这里我建议你用 F6作为启动C/C++
直接运行的快捷键。这样不会启动调试程序,会具有更快的速度但不能进行调试。
以下是其详细配置,希望大家举一反三得利用tasks
功能。你可以从这里获取相关文档。
在
tasks.json
中的tasks
json数组中添加如下项目:如果不知道添加在何处,请先从此处学习json的基础结构和数据格式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"label": "Run",
"type": "shell",
"dependsOn": "Compile",//任务间的依赖关系
"command": "${workspaceRoot}\\Debug\\${fileBasenameNoExtension}.o",//linux中运行xxx.o可执行文件
"windows": {
"command": "${workspaceRoot}\\Debug\\${fileBasenameNoExtension}.exe"//windows中运行xxx.exe可执行文件
},
"args": [],
"presentation": {
"reveal": "always",
"focus": true
},
"problemMatcher": [],
"group": {//此项用于给任务编组,这会有利于快捷键绑定
"kind": "build",//定义任务组
"isDefault": true//定义默认运行值
},
}打开左下角
设置
中的键盘快捷方式
,并且在右上角最小化按钮下方找到一个带有箭头的文件按钮(即“打开键盘快捷方式(JSON)”按钮),打开默认在用户目录下的keybindings.json
文件进行编辑。在数组中添加如下项目:1
2
3
4
5{
"key": "f6",//绑定到F6
"command": "workbench.action.tasks.build",//运行build任务组
"when": "!inDebugMode"//为了防止命令冲突,只有在非debug模式下此快捷键才会有效
}在任意C++文件中点击 F6,会执行编译任务并直接在控制台内运行编译后的程序。
Python
需要的工具
- Python安装包下载地址
- 暂不提供mac/linux的安装教程
- 教程示例平台与版本
- Python version 3.8.5 x64
- 你可以在
https://www.python.org/downloads/release/python-xxx/
下找到64位Python的下载地址
安装步骤
- 打开并运行
python-x.x.x(-amd64).exe
进行安装操作
注意选择Add Python x.x to PATH
- 点击
Install Now
等待安装 - 最后点击
Disable path length limit
(可选)
- 点击
配置步骤
打开VSCode至你的文件夹(此处以
C:\Coding
为例)。打开左侧
Extensions
选项卡- 搜索
python
并安装Python
扩展。
- 搜索
在
Scripts
文件夹中新建Python
文件夹。(可选)添加
Helloworld.py
并输入:1
print("Hello World!")
右下角可能会提示你安装
Linter
,这是python
的代码规范检查器,你可以选择安装。新建或打开
.vscode/launch.json
,点击右下角添加配置
。依次选择
Python
以及Python File
,保存并关闭文件。在你的
Helloworld.py
文件下点击 F5,即可看到运行结果。
调试的步骤和上文C/C++
的使用大同小异,此处不作赘述。
如果运行时报错请检查运行
选项卡最上方的配置是否选择为Python: 当前文件
。
优秀插件推荐
Eva Theme (ID: fisheva.eva-theme)
我最爱的主题,没有之一!!!说明: A semantic coloring code theme dedicated to making you more comfortable programming.
发布者: fisheva
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=fisheva.eva-themeMaterial Icon Theme (ID: pkief.material-icon-theme)
这个图标主题超棒而且超全~说明: Material Design Icons for Visual Studio Code
发布者: Philipp Kief
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-themefilesize (ID: mkxml.vscode-filesize)
在左下角展示当然文件大小,很好用。说明: Show the current file size in the status bar
发布者: Matheus Kautzmann
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=mkxml.vscode-filesizeColor Highlight (ID: naumovs.color-highlight)
这个插件可以高亮显示文档中的16进制颜色代码,如#252525,#e34
说明: Highlight web colors in your editor
发布者: Sergii Naumov
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=naumovs.color-highlightPower Mode (ID: hoovercj.vscode-power-mode)
让你的编码更有力量?(更炫酷)说明: Your code is powerful, unleash it! The extension made popular by Code in the Dark has finally made its way to VS Code.
发布者: Cody Hoover
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=hoovercj.vscode-power-modeMarkdown Preview Enhanced (ID: shd101wyy.markdown-preview-enhanced)
超好用的Markdown辅助扩展,知乎有教程,建议自己搜索。说明: Markdown Preview Enhanced ported to vscode
发布者: Yiyi Wang
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhancedBracket Pair Colorizer 2 (ID: coenraads.bracket-pair-colorizer-2)
从此再也不用刻意盯着括号了!说明: A customizable extension for colorizing matching brackets
发布者: CoenraadS
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2LeetCode (ID: leetcode.vscode-leetcode)
官方扩展,只有用过才知道用VSCode刷LeetCode有多爽。说明: Solve LeetCode problems in VS Code
发布者: 力扣 LeetCode
VS Marketplace 链接: https://marketplace.visualstudio.com/items?itemName=LeetCode.vscode-leetcode