共计 6335 个字符,预计需要花费 16 分钟才能阅读完成。
vscode官网 – Visual Studio Code – The open source AI code editor
版本
vscode有两个官方版本,同时也有非官方的codeserver项目
桌面版 – Download Visual Studio Code – Mac, Linux, Windows
网页版 – 工作區 – Visual Studio Code
codesever是由coder团队打造的第三方网页版vscode,需要自己部署到自己的服务器上。
与官方不同的是,codeserver是在你的服务器上编译和存放你的代码。
而官方的网页版则是将代码存储到你本地或你指定的云端,而且可能无法进行编译
同时,vscode网页版可能无法通过手机打开,而codeserver则可以在几乎任何设备打开
项目地址 – GitHub – coder/code-server: VS Code in the browser
下面主要是关于桌面版的内容
外观
vscode默认英文版,需要自己下翻译包,下载完成之后点击右下角弹出的Restart即可
为了方便,本文部分图片采用中英文对照的方式,其他图片将采用英文原文展示

软件最左边一栏是工具栏,从上到下分别是
文件浏览器(Ctrl + Shift + E)
搜索(Ctrl + Shift + F)
源管理(Ctrl + Shift + G)
运行与调试(Ctrl + Shift + D)
插件商店(Ctrl + Shift + X)
如果有装插件的话可能会多几个按钮出来
软件右边是Github Copilot(Ctrl + Alt + I),一个写代码用的ai
需要登陆GHE或Github/Google/Apple账号才能使用

编写代码时文件可以直接用vscode打开,也可以用vscode打开整个文件夹,再从文件浏览器中选中文件
建议是直接打开文件夹,再选中文件
文件路径中最好不要有中文和全角符号,可能造成编译/运行报错
打开时可能会出现一个提示框,提示你是否信任这些文件
一般直接点Open或者Yes就行了,除非你不是很信任


断点的使用 (debug)

在数字前面点击,会启用当前行的断点
在调试程序时会在对应的点处暂停,并在左侧上方显示所有变量的当前值

我们把断点所处的行简称断点行
要注意,断点行此时并未执行,看到的变量是执行完断点行上面的代码之后的值,并不是执行完断点行之后的值

在调试过程中,会出现一个工具栏
从左到右,分别是
继续 (F5) – 继续运行直到下一个断点
逐过程 (F10)
单步调试 (F11)
单步跳出 (Shift + F11)
重新开始 (Ctrl + Shift + F5) – 停止运行并重新编译运行
停止 (Shift + F5) – 停止运行
在C这种编译后运行的程序中,单步跳出不可用
在C/C++和Python中,逐过程、单步调试都会执行当前断点行的内容,然后把行的黄标移动到下一步,定住不动
在Python中,单步跳出的功能和逐过程一样
.vscode
.vscode是一个文件夹,位于你项目的根目录,或者说你vscode打开的目录
里面存放的是配置vscode用的json文件,可以用于配置C++/Python等运行环境
可以由vscode创建,也可以自己创建或从其他地方复制过来
一般不用理会这个文件夹
如果vscode没有识别到编译器,可以在这个文件夹里面配置tasks.json来指定编译器的位置
但请不要在.vscode文件夹里面写程序
json可以写到一起,像这样
// 这是gdb与python两个launch.json的结合示例
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe build active file"
}, // 一个逗号代表上面的配置结束,下面是新的配置
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${fileDirname}",
"args": [],
"env": {},
"justMyCode": true
} // 配置结束,如果还需要加配置就在此加上逗号然后继续往下写
]
}
下面配置编译环境的时候会列出示例的json文件
记得自己把里面的绝对路径替换一下,还有记得把注释也删一下
C/C++ 运行/编译环境配置 (通过msys2)
首先打开 MSYS2 官网,下载msys2并安装

安装完后打开ucrt64或mingw64,运行下面的命令
pacman -Suy
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-gdb
若遇上 [Y/n] ,并且要你输入,输入y即可
之后进入设置 → 系统信息 → 高级系统设置 → 环境变量
Windows10的话是设置 → 系统 → 关于 → 系统信息 → 高级系统设置 → 环境变量
把编译器所处路径加入系统变量的Path中
一般路径和我一样就行,如果你在 msys2 安装的时候是无脑点Next的

完成后,打开 VS Code ,安装C/C++ Extension Pack插件,随后会自动安装相应组件

随后重启 VS Code ,新建文件,写入以下测试代码并按下F5或者页面上方的调试按钮来编译并运行

// C++示例文件 tesp.cpp
#include <iostream>
int main() {
std::cout << "Hallo, Word";
return 0;
}
// C示例文件 tesc.c
#include <stdio.h>
int main() {
printf("Hwllo, Owlds");
return 0;
}
一般情况下,会弹出一个选单让你选择编译器,选择第一个GDB,然后选择g++.exe。编译完后点击TERMINAL或按下 Ctrl + ` 跳转至终端



如果仅需要编译而不运行文件可以按Ctrl + Shift + B
如果想要多文件编程,可以通过修改tasks.json文件,或者使用#include “文件名”的方式
示例文件
// main.cpp
#include <iostream>
#include <vector>
using namespace std;
// 声明其他文件中的函数
vector<int> arraytovectorplussort(int arr[], int size);
void print_vector(vector<int> vec);
int main() {
int a[] = {1, 8, 0, 2, 4};
int size = sizeof(a) / sizeof(a[0]); // 计算数组大小
print_vector(arraytovectorplussort(a, size));
return 0;
}
// vector.cpp
#include <vector>
#include <algorithm>
using namespace std;
vector<int> arraytovectorplussort(int arr[], int size) {
vector<int> vec;
for (int i = 0; i < size; i++) {
vec.push_back(arr[i]);
}
sort(vec.begin(), vec.end());
return vec;
}
// print_r.cpp
#include <iostream>
#include <vector>
using namespace std;
void print_vector(vector<int> vec) {
for (int i = 0; i < vec.size(); i++) {
cout << vec[i] << " ";
}
}
将有关文件保存到相同文件夹之后,修改tasks.json文件,把所有文件名挤在args里的-g和-o中间,然后在任意一个文件中开始编译即可
注意,此时编译只会涉及写入tasks.json的文件,无论在哪个文件中启动
通过把-g和-o中间改回"${file}"即可恢复以前在哪个文件编译哪个文件的模式
若无tasks.json文件,可通过直接开始编译的方式生成一个。此时肯定会有报错,忽略即可

如果使用#include “文件名”的方式进行多文件编程,需要在main.cpp头部加上include字段,无需更改tasks.json
#include "print_r.cpp"
#include "vector.cpp"
随后在main.cpp中开始编译即可,注意此时不能在其他子文件中进行编译

如果 VS Code 没有正确检测出系统安装的编译器,可以手动创建.vscode文件夹,自己写入tasks.json配置
但是建议先检查一下Path是否正确设置或gdb是否正常安装
下面会列出一些常用的.vscode配置文件,仅tasks.json必要,其他可选
下面是一份 tasks.json 示例文件,以g++作为编译器
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file", // 任务名称,建议取唯一的名字
// 这个需要自行替换为自己电脑上g++或者gcc的绝对路径,我也不知道干嘛的
"command": "C:\\com\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
], // 编译字段,如果有引用其他的库可以修改,默认不需要改动
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: g++.exe" // 任务详情,可以随便写
}
]
}
下面是 launch.json 的示例文件,非必须,也是放在.vscode文件夹中
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 运行名称,这个会显示在debug窗口
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
// 这个需要自行替换为自己电脑上gdb的绝对路径,用于指定调试程序
"miDebuggerPath": "C:\\com\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
// 下面指定前置任务名称,修改为与上面tasks.json的"label"相同
// 意思是启动调试程序前先运行指定任务编译代码
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
下面是一份 c_cpp_properties.json 示例文件,非必须,也是放在.vscode文件夹中
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
// 这个用于指定编译器,需要自行替换为自己电脑上g++或者gcc的绝对路径
"compilerPath": "C:\\com\\g++.exe",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
如果你使用gcc.exe作为编译器,要注意其只能编译C而不能编译C++
遇见这种情况只需要把gcc修改为g++即可,g++也可编译C程序
改的时候记得改全,不要只改一个文件
Python 运行环境配置
前往 Download Python | Python.org 下载Python
然后前往 VS Code 安装下面的插件

随后重启 VS Code
创建一个.py文件并贴上下面的代码,随后按下F5
选择Python Debugger → Python File(Python 文件)
若编译时需要加上其他字段也可以选择那项with Arguments(带有参数的)
// Python示例文件 text.py
print("Hello, Wldsaworld!")




虽说不会自动生成.vscode文件夹,py也有对应的.vscode配置文件,同样给出示例
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${fileDirname}",
"args": [],
"env": {},
"justMyCode": true
}
]
}
Footnote
- 文件路径中最好不要有中文和全角符号,可能造成编译/运行报错
- 如果遇到编译时意外终止,退出代码为-1,同时终端提示Permission Denied的时候,请先手动删除之前编译的exe文件再尝试编译
