恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
VSCode基础教程:从安装到配置Python与C++开发环境全攻略
首页
资讯中心
/
VSCode基础教程:从安装到配置Python与C++开发环境全攻略
VSCode基础教程:从安装到配置Python与C++开发环境全攻略
发布时间:2026/10/6 13:38:01
简介面向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 打开。漏掉这两个选项日常开发会多一层“先打开编辑器再手动选文件夹”的额外动作。如果不小心漏了不用重装在命令面板CtrlShiftP里输入Shell Command: Install code command in PATH就能把code命令补上。具体验证方式code --version如果终端能正常输出版本号说明 PATH 配置成功。注意这里的坑是Windows 上如果用的是 PowerShell 或者 Git Bash需要先关掉旧终端再开一个新窗口环境变量才会被重新加载。我见过不止一次用户敲code提示找不到命令其实编辑器装得很好就是忘了这一步。汉化同样是新手第一步里最常卡住的点。打开扩展面板CtrlShiftX搜索“Chinese”安装 Microsoft 出的“Chinese (Simplified) Language Pack”然后重启编辑器。如果想要中英文混排或切回英文命令面板里输入Configure Display Language重新选择即可。这里顺带说一下 VSCode 的扩展市场逻辑。扩展按语言前缀区分比如 Python 扩展、C/C 扩展、Remote-SSH 扩展。搜索时尽量按官方或下载量排序不要随便装第三方集成包。扩展装多了不会立刻让编辑器变慢但会在状态栏左下角积累一堆常驻进程后面排查问题时会很麻烦。比如 LaTeX 用户装一个 LaTeX WorkShop 就够了Markdown 用户也可以按同样思路只挑官方维护的扩展。2.2 命令面板与快捷键VSCode 的“主神经”VSCode 学习成本最高的不是界面而是操作入口的分散。菜单栏、右键菜单、设置页、终端、调试面板每个入口都对应不同功能。把所有功能统一起来的就是命令面板CtrlShiftP。在命令面板里输入任意关键字可以搜到所有内置命令和已安装扩展的命令。比如关闭预览模式、切换显示语言、打开用户设置 JSON、重命名符号、检查更新。它是比菜单更稳定的入口因为不同版本菜单位置会调整但命令面板的搜索能力始终一致。常用快捷键值得花十分钟建立肌肉记忆动作Windows/LinuxmacOS命令面板CtrlShiftPCmdShiftP快速打开文件CtrlPCmdP切换终端面板CtrlCtrl格式化文档ShiftAltFShiftOptionF左侧资源管理器CtrlBCmdB这张表不是让你一次性背完。先把 CtrlShiftP 练到条件反射其他快捷键在操作时顺手查一两次自然就记住了。终端面板的切换和格式化是我个人觉得性价比最高的两个。看函数参数时把光标停在函数调用括号内按 CtrlShiftSpace 就能触发参数提示这个快捷键在 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 负责 IntelliSensePython Debugger 负责调试。建议不要单独安装老旧的 Python 语言服务器扩展容易和 Pylance 冲突导致补全、跳转忽好忽坏。查看函数参数时把光标停在函数调用处按 CtrlShiftSpace弹出来的就是 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 DebugCtrlShiftD点击 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 没有 tasksF5 会直接尝试调试一个不存在的 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-coloralways, -g, ${file}, -o, ${fileDirname}\\${fileBasenameNoExtension}.exe ], group: build, problemMatcher: [$gcc] } ] }参数含义-fdiagnostics-coloralways让编译错误信息带颜色-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 和 intelliSenseModeVSCode 自动生成{ configurations: [ { name: Win64, includePath: [${workspaceFolder}/**], defines: [_DEBUG, UNICODE, _UNICODE], compilerPath: C:/mingw64/bin/gcc.exe, cStandard: c17, cppStandard: c17, 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.encodingUTF-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 不放用鼠标点击任意位置就能在同一处多个点同时输入。批量修变量名、给多行日志加前缀、同时调整多个方法签名效率能提升一个量级。另一个常用组合是 CtrlD它会选中下一个相同的词并加入光标集合改重复代码非常顺手。第二项是代码片段。把自己写了很多遍的模板存成 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}表示展开后光标停留的位置。这类模板可以覆盖日志输出、异常处理、函数注释等场景积累得越多写代码的重复劳动越少。第三项是快捷键的建立。我自己的习惯是每遇到一个高频操作就去命令面板里搜快捷键设置把默认键改成顺手的组合。比如把“切换终端面板”设置成 CtrlJ把“格式化文档”设置成 AltF。快捷键不是背出来的是在一天的工作里遇到一次改一次慢慢沉淀成自己的操作习惯。最后我建议你每个月花几分钟看一眼左下角管理图标里的扩展列表把用不到的扩展禁用掉让编辑器一直保持轻快。回想我自己刚用 VSCode 时最大的问题是总想一步到位装过多插件、配了一堆用不到的设置反而天天和编辑器搏斗。后来明白了基础教程的意义不在于把配置堆满而在于建立一套简洁、顺手的个人工作流。希望这篇 vscode 基础教程能帮你少走这些弯路也希望你在配置 C 或 Python 环境时能多一分从容少一分翻车。本文还有配套的精品资源点击获取