简介:面向VSCode零基础学习者与希望提升编码效率的开发者,这份PDF教程以常用快捷键和插件使用为核心,从命令面板、界面布局等快速入门内容讲起,逐步覆盖光标的精准移动与多光标批量编辑、整行删除与多行注释、代码格式化与缩进调整、字符大小写转换、代码行合并与排序,以及文件/符号/行号的快速跳转、定义与实现查看、引用查找、F2重构改名等高频操作,并按双平台给出按键对照,方便不同系统用户使用。资源为单个PDF文件,仅81KB,内容高度浓缩,适合作为随身查阅的速查手册;以中文书写,步骤简洁清晰,适合初学者学习或随时检索。目前已有4685人学习下载,可随时按需查阅常用快捷键操作。除操作演示外,还结合VSCode内置的Git集成、调试功能、语法高亮等特点,补充了插件选择与实际开发建议,帮助读者搭建高效编码工作流。无论你是刚开始接触编辑器,还是希望进一步优化编码流程,都可从中获得直接可用的操作技巧,提升写码效率。
1. 为什么选 VSCode:从一个编辑器到一个开发环境的转变
如果你以为 vscode 基础教程讲的是“怎么下载、怎么打开、怎么敲代码”,那大概率学完三分钟就丢了。真正让人停留在 VSCode 里的原因,是它能只靠装插件和写配置,变成一个按语言、项目和工作流定制的开发环境。这个教程想帮新手解决最核心的诉求:装完之后不知道从哪开始、配 C++ 和 Python 环境时一堆报错、用远程服务器时感觉卡在一半。
别急着下载最新版就完事——从安装参数、中文汉化、插件选择,到 tasks.json 和 launch.json 这两个黑匣子,每一环都可能让你多踩半天的坑。新手建议按顺序看完,熟手可以直接跳到第 5 章的避坑清单。这个教程能保证一件事:每一步都给出你在自己机器上能复现的结果,而不是一段看着合理但跑不起来的配置。
2. 拿到一个趁手的 VSCode:安装、汉化与最小工作流
2.1 安装与汉化:三个勾选和一步重启
VSCode 的安装包分 System Installer 和 User Installer。个人开发建议选 User Installer,不需要管理员权限,安装后所有配置都在用户目录下,换机器时方便迁移。安装向导里有两个勾选框很容易被忽略:一个是“添加到 PATH”,另一个是“通过 Code 打开文件和文件夹”。
第一项决定你能否在任何终端里直接敲code .打开当前目录;第二项决定你能否右键项目文件夹直接用 VSCode 打开。漏掉这两个选项,日常开发会多一层“先打开编辑器再手动选文件夹”的额外动作。如果不小心漏了,不用重装:在命令面板(Ctrl+Shift+P)里输入Shell Command: Install 'code' command in PATH,就能把code命令补上。
具体验证方式:
code --version如果终端能正常输出版本号,说明 PATH 配置成功。注意这里的坑是:Windows 上如果用的是 PowerShell 或者 Git Bash,需要先关掉旧终端再开一个新窗口,环境变量才会被重新加载。我见过不止一次用户敲code提示找不到命令,其实编辑器装得很好,就是忘了这一步。
汉化同样是新手第一步里最常卡住的点。打开扩展面板(Ctrl+Shift+X),搜索“Chinese”,安装 Microsoft 出的“Chinese (Simplified) Language Pack”,然后重启编辑器。如果想要中英文混排或切回英文,命令面板里输入Configure Display Language重新选择即可。
这里顺带说一下 VSCode 的扩展市场逻辑。扩展按语言前缀区分,比如 Python 扩展、C/C++ 扩展、Remote-SSH 扩展。搜索时尽量按官方或下载量排序,不要随便装第三方集成包。扩展装多了不会立刻让编辑器变慢,但会在状态栏左下角积累一堆常驻进程,后面排查问题时会很麻烦。比如 LaTeX 用户装一个 LaTeX WorkShop 就够了,Markdown 用户也可以按同样思路只挑官方维护的扩展。
2.2 命令面板与快捷键:VSCode 的“主神经”
VSCode 学习成本最高的不是界面,而是操作入口的分散。菜单栏、右键菜单、设置页、终端、调试面板,每个入口都对应不同功能。把所有功能统一起来的,就是命令面板:Ctrl+Shift+P。
在命令面板里输入任意关键字,可以搜到所有内置命令和已安装扩展的命令。比如关闭预览模式、切换显示语言、打开用户设置 JSON、重命名符号、检查更新。它是比菜单更稳定的入口,因为不同版本菜单位置会调整,但命令面板的搜索能力始终一致。
常用快捷键值得花十分钟建立肌肉记忆:
| 动作 | Windows/Linux | macOS |
|---|---|---|
| 命令面板 | Ctrl+Shift+P | Cmd+Shift+P |
| 快速打开文件 | Ctrl+P | Cmd+P |
| 切换终端面板 | Ctrl+` | Ctrl+` |
| 格式化文档 | Shift+Alt+F | Shift+Option+F |
| 左侧资源管理器 | Ctrl+B | Cmd+B |
这张表不是让你一次性背完。先把 Ctrl+Shift+P 练到条件反射,其他快捷键在操作时顺手查一两次,自然就记住了。终端面板的切换和格式化是我个人觉得性价比最高的两个。看函数参数时,把光标停在函数调用括号内按 Ctrl+Shift+Space 就能触发参数提示,这个快捷键在 Python 和 C/C++ 里都通用。
2.3 工作区、预览模式与多根目录
理解工作区(Workspace)是迈过新手期的关键概念。默认打开一个文件夹就是单文件夹工作区,支持用 File > Add Folder to Workspace 添加多个文件夹,再用 File > Save Workspace As 保存为.code-workspace文件。这个文件本质是 JSON,记录了根目录、窗口布局和部分设置,很适合前后端分离或多仓库协作项目。
还有一个会影响日常编辑体验的细节:预览模式。VSCode 默认单击文件时,文件在“预览标签”里打开(标签页标题是斜体)。此时如果再单击另一个文件,上一个没有做任何编辑的文件会被自动替换掉。很多用户遇到的“没有编辑的文件会关上”,就是这个机制造成的。
如果不习惯,在设置里搜workbench.editor.enablePreview,改成 false,之后单击文件就不会再被替代。或者在打开文件时用双击,双击会取消预览状态,把标签固定下来。这块属于典型的“三个小时找不到原因,改一个设置就好”的玄学问题。
2.4 远程开发与设置同步:换机器最快恢复的路线
VSCode 和同类编辑器拉开差距的一个功能是远程开发。装上 Remote-SSH 扩展后,可以通过 SSH 连接远程服务器,本地只负责界面渲染,代码在远端编译运行。配置方法是扩展面板安装 Remote - SSH,再点击左下角绿色远程按钮,选择 Connect to Host,输入主机名。
连接成功后,左下角会显示“SSH: 主机名”,此时资源管理器打开的是远端文件系统,插件也需要重新安装在远端。这跟用终端 vim 编辑远程代码的感觉完全不同:补全、跳转、调试都走本地界面。注意,远程开发不是把所有插件都自动装好,需要在“扩展”页签里把需要的扩展选择 Install in SSH: 主机名。
如果本地装了 WSL,也可以选择 Remote-WSL 扩展,直接打开 WSL 里的 Linux 目录,写 Linux 工具链项目比切双系统方便得多。设置同步则解决换电脑的问题。登录微软账号后,设置、快捷键、插件列表都能跨设备同步。第一次在新机器上装完,登录账号并选择合并,之前调好的配置基本能恢复。需要提醒的是,同步的是插件列表和配置,插件本体和需要下载二进制文件的组件(比如语言服务器、clangd)会在新机器上重新拉取,首次打开项目时耐心等一会儿。
3. 配置 Python 开发环境:从解释器到调试器的完整落地方案
3.1 为什么装完 Python 扩展还是不能用
很多教程说“装完 Python 扩展就能写 Python”,这句话对,但只对了一半。只装扩展,VSCode 仍不知道用哪一个 Python 解释器去运行、补全、调试。这个动作对应的命令是Python: Select Interpreter。不做这一步,常见现象是:运行按钮是灰的、底部提示未选择解释器、自动补全完全没反应。
解释器选择背后对应一个变量:python.defaultInterpreterPath。在 settings.json 里,你可以设置一个全局默认解释器,也可以让每个项目单独选择。团队协作时,我更推荐项目级指定:
{ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe" }这种写法的好处是,新成员拉下代码后打开项目,只要虚拟环境路径一致,不会因为各自机器上 Python 版本不同而出现行为差异。代价是它假设每个人都会创建.venv目录,所以它更适合团队内已经约定虚拟环境规范的项目。
另一个常被忽略的细节是,Python 扩展自带了一堆子扩展,比如 Pylance 负责 IntelliSense,Python Debugger 负责调试。建议不要单独安装老旧的 Python 语言服务器扩展,容易和 Pylance 冲突,导致补全、跳转忽好忽坏。查看函数参数时,把光标停在函数调用处按 Ctrl+Shift+Space,弹出来的就是 Pylance 提供的签名提示。
3.2 创建虚拟环境并让解释器指向它
虚拟环境几乎是 Python 项目开发的强制要求。直接在系统全局 Python 里 pip install 依赖,装多了之后不同项目互相污染版本,是后端项目最头疼的问题之一。创建虚拟环境的常见做法是在项目根目录执行:
python -m venv .venvWindows 下激活虚拟环境:
.venv\Scripts\activate激活后命令行前缀会变成(.venv),此时执行 pip install 装依赖,都会进入这个虚拟环境。如果用 VSCode 终端,还可以直接在命令面板里输入Python: Create Environment,让 VSCode 自动完成创建和解释器选择,效果一样,界面化操作对新手更友好。
创建完虚拟环境后,用命令面板执行Python: Select Interpreter,选择.venv解释器。此时右下角状态栏会显示当前解释器路径,代码上方的运行按钮也会变成可用状态。验证方式很简单,写一行print("hello")运行它,能输出说明整个链路已经通了。
如果你使用 Anaconda 或 Miniconda,解释器路径通常在 conda envs 目录下。VSCode 也能识别,只要在解释器选择界面的输入框里贴入 conda 环境的python.exe路径即可。这里不展开,但记住一个判断标准:凡是运行脚本时“模块找不到”或“import 失败”,第一反应都先查解释器是不是在当前项目的虚拟环境里。
3.3 最小可用调试配置:launch.json 参数逐行看
做完解释器配置后,就可以调试了。打开侧边栏 Run and Debug(Ctrl+Shift+D),点击 create a launch.json file。VSCode 会给当前项目生成一个模板,常见的 Python 配置分“调试当前文件”和“调试模块”两种。
调试单文件版本:
{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "debugpy", "request": "launch", "program": "${file}", "console": "integratedTerminal", "cwd": "${workspaceFolder}" } ] }这个配置里,program设成${file},表示调试入口是当前编辑器里打开的文件;console设成integratedTerminal,输入输出走 VSCode 集成终端,适合处理input()和命令行交互。cwd设成工作区根目录,保证相对路径的文件读写不会找不到文件。
最容易被忽视的字段是justMyCode。它的默认值是 true,意味着调试时只能进入你自己的代码,看不到 site-packages 里函数内部的行为。如果你需要调试第三方库,把它设为 false 即可。调试时左侧的变量面板、调用堆栈,以及顶部调试工具条的“逐语句”会把单步运行变成一项视觉化操作,这也是命令行黑盒排错完全比不了的优势。
对于以模块方式启动的项目(比如 Flask 应用入口是flask run),可以用module替代program:
{ "name": "Python: module", "type": "debugpy", "request": "launch", "module": "main", "cwd": "${workspaceFolder}", "env": { "PYTHONPATH": "${workspaceFolder}" } }这里的module字段后面接模块名,比如main表示启动入口是 main.py。PYTHONPATH指向工作区根目录,解决“自己写的模块互相 import 失败”的问题。如果项目里用了 pytest,直接选择 Python: Debug pytest 模板,VSCode 会在调试前先收集测试用例,断点可以直接打到测试中间。
4. 配置 C/C++ 环境:编译器、tasks 与 launch 的一次性跑通
4.1 三个配置文件的分工:IntelliSense、编译、调试
C/C++ 是 VSCode 配置里最让人头大的部分,原因在于它至少有四个参与方:编译器(gcc/g++)、调试器(gdb)、IntelliSense 引擎、配置文件。初学者常常把 tasks.json、launch.json、c_cpp_properties.json 三个文件混在一起改,改了半天不知道问题出在哪。
分清这三者的职责就清楚了。c_cpp_properties.json 负责 IntelliSense,也就是编辑器里的红色波浪线、补全、跳转定义;tasks.json 负责执行编译命令,把源码变成可执行文件;launch.json 负责调用调试器加载那个可执行文件。三者不是同一件事,会出现“代码显示红色波浪线但编译能过”或“编译不过但补全正常”的错位现象。
正常的运行链路是:按 F5 → preLaunchTask 里指定的任务执行(也就是编译)→ 编译成功 → 调试器启动 → 开始调试。如果编译失败,调试器不会启动。如果只有 tasks 没有 launch,那只能编译不能调试;如果只有 launch 没有 tasks,F5 会直接尝试调试一个不存在的 exe。这两个文件通常建议成对出现。
4.2 工具链安装与验证:gcc/gdb 的坑
在 Windows 上配 C/C++,常用编译器是 MinGW-w64,它提供 gcc/g++/gdb。安装并配置好 PATH 后,先验证工具链是否可用。
gcc --version gdb --version两个命令都有版本输出,说明工具链可用。如果没有,常见原因是 MinGW 的 bin 目录没加入 PATH,或者新装的终端没有重启。另外,gdb 对中文路径支持不好,项目路径里如果有中文,调试时可能出现断点失效、变量读取失败的情况。我一般会把项目放到纯英文路径下,或者至少保证编译产物路径没有中文。
环境就绪后,写一个测试文件:
#include <stdio.h> int main(void) { printf("hello vscode c\n"); return 0; }保存成 hello.c,然后先试着手工编译一次:
gcc -g hello.c -o hello.exe这一步能排除“编译器本身有问题”的情况。真正开始配置时,不需要每次手动敲这行命令,把它写进 tasks.json 即可。
4.3 tasks.json:把编译动作变成“一次按键”
在项目根目录建.vscode文件夹,创建 tasks.json:
{ "version": "2.0.0", "tasks": [ { "label": "C: 编译当前文件", "type": "cppbuild", "command": "gcc", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "group": "build", "problemMatcher": ["$gcc"] } ] }参数含义:-fdiagnostics-color=always让编译错误信息带颜色,-g生成调试信息,没有它调试时断点会失效。${file}表示当前打开的文件,${fileDirname}是当前文件所在目录,${fileBasenameNoExtension}是不带扩展名的文件名。整个任务的效果就是:一键把当前 C 文件编译成同名 exe。
这里的细节是type要写cppbuild而不仅是shell,这样 VSCode 会对输出做实时解析,把 error 信息变成 Problems 面板里的跳转条目。problemMatcher设为$gcc,配合cppbuild,错误信息才能被正确匹配。
tasks.json 里还可以加多个任务,比如“C: 编译所有文件”或“C: 清理产物”。每个任务都有独立的 label 和 args。这样项目大了之后,可以一键编译全工程,而不是只编译当前单文件。这已经是配置层面能让效率明显上升的操作。
4.4 launch.json 与 c_cpp_properties.json:调试与代码跳转的最后一环
launch.json 负责把调试器接起来。在 Run and Debug 面板,选择 C++ (GDB/LLDB) 创建配置,再改写成:
{ "version": "0.2.0", "configurations": [ { "name": "C: 调试当前文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C: 编译当前文件" } ] }preLaunchTask要和 tasks.json 里的 label 一致,这是两个文件之间的连接点。externalConsole设成 false,所有输出保持在 VSCode 调试控制台里,这样变量监视、断点命中都留在同一界面。miDebuggerPath如果不写,VSCode 会尝试在 PATH 里找 gdb,但如果 PATH 没配好,建议写完整路径。
c_cpp_properties.json 则生成得更简单。命令面板输入C/C++: Edit Configurations (UI),在图形界面里填上 compilerPath 和 intelliSenseMode,VSCode 自动生成:
{ "configurations": [ { "name": "Win64", "includePath": ["${workspaceFolder}/**"], "defines": ["_DEBUG", "UNICODE", "_UNICODE"], "compilerPath": "C:/mingw64/bin/gcc.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-gcc-x64" } ], "version": 4 }compilerPath要填真实路径,intelliSenseMode要写windows-gcc-x64而不是msvc-x64。很多“函数、变量都没办法跳转”的问题,根源就在这两项与真实工具链不匹配。补全和跳转是由 IntelliSense 引擎完成的,只要 compilerPath 对、includePath 覆盖到头文件目录,大部分跳转立刻恢复正常。
如果你的项目是 STM32,这套通用配置不适用。嵌入式开发通常用 EIDE 插件或直接配置 Cortex-Debug,配合 arm-none-eabi-gcc 和 OpenOCD 调试器,整体流程是:EIDE 管理工程结构,编译完成后用 Cortex-Debug 连接 J-Link 下载调试。基础是先把这里的 gcc/gdb 链路跑通,理解 tasks 和 launch 的关系,换到 ARM 工具链时才能知道改的是哪些参数。
5. 避坑:VSCode 基础使用中最常见的 5 个问题
5.1 现象:右键没有“跳转到定义”
用 VSCode 写代码,右键菜单里的 Go to Definition 是使用频率最高的功能之一。如果这个菜单项是灰色或者点了没反应,最常见的两个原因是:某一类功能装了多个扩展,或者文件不在当前工作区里。
先说扩展冲突。C/C++ 项目中同时启用 Microsoft C/C++ 和 clangd 的情况非常普遍,两个扩展会争抢对 C/C++ 语言的解析权,结果就是右键菜单变灰、跳转失效。解决:只保留一个。如果你用 clangd 做主引擎,就在 settings.json 里禁用 C/C++ 的 IntelliSense:
{ "C_Cpp.intelliSenseEngine": "disabled" }另一个原因是文件被单独打开而没有加入工作区。VSCode 对单文件模式下的 IntelliSense 支持很弱,甚至完全没有。建议始终用 File > Open Folder 打开整个项目目录,而不是把单个文件拖进窗口。如果是 Python 项目,还要确认解释器是否已选好,未选择解释器时 Pylance 不会提供跳转。
5.2 现象:C++ 所有的函数、变量都没办法跳转,且偶尔重开恢复
这种间歇性失效,大部分情况指向 IntelliSense 索引崩溃,而不是代码本身有问题。触发点通常是 includePath 里有中文路径、compilerPath 配置错误,导致索引进程反复重启,最终停在无索引状态。
排查步骤是:先打开命令面板,执行C/C++: Reset IntelliSense Database,然后重新打开项目让它重新索引。如果还是不行,打开 c_cpp_properties.json,检查 compilerPath 是否指向真实存在的编译器,includePath 是否包含实际头文件路径。去掉路径中的中文目录,删掉.vscode重新生成配置,通常能彻底解决。
如果项目很大,索引任务可能导致编辑器卡顿。可以在设置里关掉自动分析:
{ "C_Cpp.intelliSenseEngine": "default", "C_Cpp.intelliSenseCacheSize": 0 }CacheSize设成 0 表示不限制缓存大小,对大项目有用。这类调优属于锦上添花,先保证跳转正常更重要。
5.3 现象:没有编辑的文件会自动关上
许多用户第一次遇到这个现象时会以为编辑器出 bug 了:刚打开一个文件,再看另一个文件,前一个文件标签消失。这其实是预览模式(Preview Mode)在起作用,是 VSCode 默认行为,不是故障。
预览模式的设计初衷是快速浏览文件而不留下大量标签。斜体的标签页就是预览状态,一旦你在这个文件里做过编辑,它就会自动固定。解决:如果不想让任何文件自动替换,在设置里搜索workbench.editor.enablePreview,把它设为 false。
这个设置在 UI 里的描述是“从资源管理器或快速打开中打开编辑器时,是否在预览状态下打开”。建议写代码时关掉它,因为写代码时打开的几乎每个文件都可能要停留很久。如果使用多项目工作区,最好在.code-workspace的 settings 里也写一份,避免别人打开工作区后又被这个行为折磨。
5.4 现象:运行 Java 或 Python 时输出乱码
乱码的本质是编码不一致:源文件是 UTF-8,终端或控制台默认 GBK(尤其是 Windows 中文环境),输出中文时就出现乱码。这种情况在运行 Java 程序、Python 脚本时都比较常见。
解决路径分两步:先确认源文件编码是 UTF-8,右下角状态栏可以看到编码标签;然后在 settings.json 里强制编辑器以 UTF-8 写入和终端以 UTF-8 解析:
{ "files.encoding": "utf8", "terminal.integrated.defaultProfile.windows": "PowerShell", "files.autoGuessEncoding": true }如果是 Java 运行时报乱码,还需要在 launch.json 的 vmArgs 里增加-Dfile.encoding=UTF-8。更重要的是,如果代码是从网页或文档复制的,先粘贴到 VSCode 确认右下角编码,不要直接跳到运行步骤。因为复制过程可能把 GBK 内容混进 UTF-8 文件,这种乱码是编辑器显示层面的,重设编码即可恢复。
5.5 现象:清理 Git 分支时误删了还在开发的分支
Git 分支删除后,分支名会消失,但提交对象仍然留在仓库的引用日志里。很多人在 VSCode 源代码管理面板里看到分支清理提示,以为删除就永久丢失,其实还有后悔药可吃。
具体操作是在项目根目录的终端执行:
git reflog git branch 找回分支名 对应commit的hashreflog 里能看到删除分支的 HEAD 记录,用 git branch 从那条提交恢复分支即可。这个操作在 VSCode 里也能做,源代码管理面板切换到 Reflog 视图,右键恢复。这算基础教程里比较冷门但真实有用的一个点。
日常使用 VSCode 的 Git 集成时,还有一个小技巧:提交前用源代码管理面板的“更改”列表里逐文件检查 diff,避免把调试用的临时改动带进提交。分支删除这类误操作伴随着未提交改动时尤其要小心,因为 reflog 只能恢复已提交内容,未提交的改动如果没存入 Stash 就真丢了。
6. 让 VSCode 真正变成“自己的编辑器”的 3 个技巧
用了一段时间 VSCode 后,很多人会有一种感觉:知道它强大,但总觉得缺了点什么。其实是缺少让它为你工作的细节习惯。第一项是多光标编辑。按住 Alt 不放,用鼠标点击任意位置,就能在同一处多个点同时输入。批量修变量名、给多行日志加前缀、同时调整多个方法签名,效率能提升一个量级。另一个常用组合是 Ctrl+D,它会选中下一个相同的词并加入光标集合,改重复代码非常顺手。
第二项是代码片段。把自己写了很多遍的模板存成 Snippet,之后只要输入前缀按 Tab 就展开。在命令面板里执行Preferences: Configure User Snippets,选择 python.json,把日常模板加进去:
{ "Python调试入口": { "scope": "python", "prefix": "dmain", "body": [ "if __name__ == \"__main__\":", " ${1:pass}" ], "description": "插入Python主入口" } }prefix对应触发词,body里${1:pass}表示展开后光标停留的位置。这类模板可以覆盖日志输出、异常处理、函数注释等场景,积累得越多,写代码的重复劳动越少。
第三项是快捷键的建立。我自己的习惯是每遇到一个高频操作,就去命令面板里搜快捷键设置,把默认键改成顺手的组合。比如把“切换终端面板”设置成 Ctrl+J,把“格式化文档”设置成 Alt+F。快捷键不是背出来的,是在一天的工作里遇到一次改一次,慢慢沉淀成自己的操作习惯。最后我建议你每个月花几分钟看一眼左下角管理图标里的扩展列表,把用不到的扩展禁用掉,让编辑器一直保持轻快。
回想我自己刚用 VSCode 时,最大的问题是总想一步到位,装过多插件、配了一堆用不到的设置,反而天天和编辑器搏斗。后来明白了,基础教程的意义不在于把配置堆满,而在于建立一套简洁、顺手的个人工作流。希望这篇 vscode 基础教程能帮你少走这些弯路,也希望你在配置 C++ 或 Python 环境时,能多一分从容,少一分翻车。
本文还有配套的精品资源,点击获取