简介:一份面向VSCode初学者的基础使用教程,定位为课程资源,特别适合刚接触Visual Studio Code或希望系统梳理常用操作的学生、开发人员与运维人员。内容从命令面板、界面布局和命令行打开项目讲起,之后逐步覆盖代码编辑、代码注释、代码格式化、多光标编辑、快速跳转、代码重构等核心场景,既保留了初学者需要的基础操作,也加入了不少能直接提升效率的快捷技巧。教程只有一个PDF文件,压缩包大小仅711KB,下载后可在本地随时翻阅,不会占用太多空间;目前已有1244人学习下载,是入门阶段值得参考的材料。此外,教程还针对macOS与Windows系统分别给出了快捷键对照,并包含多光标批量修改、行排序、大小写转换、符号跳转等实用提示,能够帮助读者在较短时间内建立对VSCode的完整操作认知,减少重复点击和记忆负担,稳步提高日常编码效率。
1. vscode基础使用教程:为什么看了很多资料,依然会用成“高级记事本”
关于 VSCode 基础使用教程,网上的文章多到可以当百科看,但真正从零上手的人,失败的场景反而高度雷同:装了插件不知道怎么调快捷键,写 C++ 找不到编译入口,界面汉化改了重启又变回英文,甚至以为文件被编辑器“弄丢”了。VSCode 的能力不在界面那几排图标里,而在命令面板、配置文件和插件生态里。它解决的从来不是“能不能编辑代码”的问题,而是“你能不能把编译、调试、远程连接、版本管理全部放在同一个窗口里连续操作”。这篇文章面向三类人:刚装好 VSCode、想配 C/C++ 或 Python 环境、或者已经被“插件安装在哪个目录”“跳转定义为什么是灰色”这类问题卡住的人。我尽量按真实使用顺序讲,哪些参数值得改、哪些坑值得避开,都会直接点出来。
2. 下载、安装与汉化:装对第一版,后面少走一半弯路
2.1 用户版还是系统版:权限、目录与卸载
新手下载 VSCode 时,官网会给出 User Installer 与 System Installer 两个入口。很多人不假思索选 System,理由是“所有用户都能用”,结果后续插件安装、命令行调用、程序更新都容易遇到权限提示。我更建议普通开发者用用户版:它装到当前用户的 AppData 目录,不需要管理员权限,也不需要反复确认,插件和配置都跟随当前 Windows 账号走。
Windows 上可以用 winget 安装,前提是系统已经是较新的 Windows 10 或 Windows 11,并且安装了 winget 命令行工具:
# 用户版安装 winget install Microsoft.VisualStudioCode.User # 系统版安装,通常不建议 winget install Microsoft.VisualStudioCode.SystemmacOS 上习惯用 Homebrew 的 cask 安装:
brew install --cask visual-studio-code安装过程中有一个重要选项:在 Windows 的“选择附加任务”页面,勾选“将‘用 Code 打开’操作添加到 Windows 资源管理器目录上下文菜单”以及“添加到 PATH”。PATH 不勾选,后面在终端里执行code .就会报 command not found;资源管理器右键菜单不勾选,之后每次打开项目都要先打开 VSCode 再选择目录,效率损失不小。装完之后,在任意终端输入下面命令,能弹出 VSCode 窗口就算成功:
code --versioncode命令是 VSCode 提供的命令行入口,--version只用来验证路径是否生效。如果提示没有该命令,优先检查安装时是否勾选“添加到 PATH”,而不是急着重装。
2.2 中文界面:装一个语言包就能搞定,别改了配置就删掉重装
“vscode汉化”是搜索量很高的关键词,因为它确实有坑:有人改了locale配置发现菜单只有半截中文,有人把安装目录里的翻译文件替换掉,结果一更新软件就全部还原。VSCode 的汉化不是修改程序文件,而是安装官方语言包插件。
最简单的方式是在扩展商店搜索“Chinese”,找到 Microsoft 出的“中文(简体)语言包”,安装后右下角会提示重启窗口。也可以用命令行安装:
code --install-extension ms-ceintl.vscode-language-pack-zh-hans装完在命令面板执行“重新加载窗口”即可。需要注意,这套中文包只负责界面文案,代码里的变量名、控制台输出内容不会翻译,这属于正常现象。另外,如果之前手动改过locale.json或启动参数里的--locale,请把相关配置恢复为默认,再让语言包接管,否则可能出现界面中英文混杂。
2.3 插件从哪里装:扩展商店、命令面板与离线包
VSCode 的扩展商店是整个产品最有价值的部分。打开扩展面板的快捷键是Ctrl+Shift+X,搜索框里可以直接输入能力关键词,比如“C++”“Python”“Chinese”。但插件不是装得越多越好,它分为两类:一类提供语言服务,比如代码提示、跳转、调试;另一类负责美化或效率增强,比如主题、图标、格式化管理器。语言服务类装重了,最容易出现互相抢占符号索引的问题,这一点我会在第四章详细讲。
企业内网或离线环境装不上插件时,可以在能访问外部网络的电脑上从扩展商店页面下载 .vsix 文件,再拷贝到目标机器的 VSCode 里手动安装。命令行方式如下:
# 从本地 .vsix 文件安装插件 code --install-extension /path/to/your-extension.vsix参数--install-extension后面可以直接跟扩展商城里某个扩展的完整标识,比如ms-python.python;如果跟本地文件路径,就表示从 VSIX 包安装。装完之后建议在扩展面板里检查是否有“重新加载”按钮,插件只有在重新加载窗口后才开始工作。常见做法是:刚接触 VSCode 时先装语言包、能跑通目标语言的官方扩展、再加一款主题和一款图标,剩下的等明确需要再补。
3. 文件与编辑:预览模式、命令面板与多光标,掌握之后效率翻倍
3.1 没有编辑的文件会关上:这是预览模式,不是故障
很多人在论坛搜“vscode,没有编辑的文件会关上”,其实这是一个默认启用但极少被解释的功能:预览模式。当你用鼠标单击资源管理器里的文件时,VSCode 会以“预览”方式打开它;再单击另一个文件,当前预览文件就会被替换。只有你双击文件,或者在预览标签页里真正编辑了内容,标签才会变成常驻。对于那些只是想快速翻代码的人来说,这是保护标签页不被撑爆的机制。
如果你不喜欢这种“点开一个文件就替换上一次”的行为,可以用快捷键Ctrl+K再按Enter把当前标签固定;也可以直接修改设置,让所有文件都直接以普通模式打开:
{ "workbench.editor.enablePreview": false }在设置界面搜索enablePreview,或者在settings.json里写入上面这行都行。我建议保持默认的预览模式,但一定要学会用Ctrl+K Enter固定重要文件,否则 debug 时看着看着文件就被替换掉,确实烦人。
3.2 打开文件、命令面板与多光标的键盘操作
VSCode 的核心交互不是菜单,而是命令面板。Ctrl+Shift+P能调出所有操作,比如格式化文档、切换语言模式、选择工作区颜色主题。很多功能菜单里根本没有入口,只能靠命令面板执行,所以我会把命令面板当作“万能搜索框”来记。另一个面向文件的是Ctrl+P:输入文件名的一部分就能快速跳转,再配合:冒号可以直接跳到指定行。比如想打开common.py的第 88 行,按Ctrl+P输入common.py:88回车即可。
批量修改代码时,多光标是效率大杀器。按住Alt再点击鼠标,可以在多个位置同时放置光标;把光标放到一个单词上按Ctrl+D,会选中下一个相同单词,连续按可以逐个选中并统一修改;如果不小心选多了,Ctrl+U可以撤销上一次光标选择。最开始可能不习惯,但每天多练习 5 分钟,一周后改变量名、改日志前缀、调整参数列表都会快很多。记住一个原则:重复出现在多个位置的相同字符串,优先用多光标而不是逐个手动改。
3.3 集成终端:把命令行直接嵌进编辑器
VSCode 内置的集成终端是我使用频率最高的功能之一。Ctrl+打开终端后,可以直接在当前工作区执行git status、npm install、python xxx.py这些命令,不再需要在多个窗口之间来回切换。终端底部还支持分屏,可以把编译、调试、运行三个终端并排放在一起。在终端窗口右上角的“+”旁边下拉选择默认 shell,Windows 可以使用 PowerShell 或 WSL 中的 bash,Linux 和 macOS 可以直接选系统默认 shell。
对 WSL 用户来说,更推荐的姿势是把 VSCode 作为 Linux 终端的前端:在 WSL 里安装 VSCode Server,Windows 侧用 Remote-WSL 插件连接。之后所有文件读写、编译命令都在 Linux 环境里执行,Windows 只负责显示界面。这样配置 C/C++ 工具链时,装 gcc、gdb 等命令在 WSL 里一条 apt 就能搞定,比在 Windows 原生环境处理 MinGW 路径问题省心不少。集成终端的内存占用不算小,但如果你的机器内存不低于 16GB,长期开着一个终端窗口完全值得。
4. 语言环境:用 tasks.json 与 launch.json 跑通 C++ 和 Python 的“编译-调试”闭环
4.1 C++:先把编译器装好,tasks.json 每个字段怎么调
很多人配 C/C++ 环境,一上来就写launch.json,结果发现点调试报一堆错。这里有个颠倒问题:调试的前提是可执行文件已经通过编译,所以第一步应该是确定编译器能被终端直接找到。Windows 上常见做法是安装 MinGW-w64 并把g++.exe所在目录加入系统 PATH,安装完成后在终端执行g++ --version验证;Linux 用apt install gcc g++ gdb make;macOS 执行xcode-select --install安装命令行工具。
VSCode 本身不负责编译,它通过任务系统调用编译器。可以从菜单“终端 → 配置任务”生成,也可以手动创建一个.vscode/tasks.json。下面是 GNU 工具链在 Linux 或 WSL 里的最小版本:
{ "version": "2.0.0", "tasks": [ { "label": "C/C++: g++ 生成活动文件", "type": "cppbuild", "command": "/usr/bin/g++", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "cwd": "${fileDirname}", "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true }, "detail": "编译当前打开的源文件" } ] }解释一下几个关键配置:command是编译器路径,最好写绝对路径,避免因为 PATH 变化导致任务找不到;args中${file}表示当前打开的文件,${fileDirname}表示该文件所在目录,${fileBasenameNoExtension}是不带后缀的文件名,-g用来生成调试信息;-o指定输出文件名。problemMatcher让编译器的报错被 VSCode 识别,从而能在“问题”面板里点击跳转到出错行。group.isDefault为 true 后,按Ctrl+Shift+B就会直接执行这个编译任务,而不需要再次选择。
Windows 平台的差异点是输出文件名要带上.exe后缀,编译器路径通常是C:\Program Files\mingw64\bin\g++.exe。另外,如果以后做多文件项目,建议把${file}换成 ${workspaceFolder}/src 下的具体源文件列表,再用链接参数把所有.o目标文件链在一起,不能一直靠“编译当前文件”应付。
4.2 Python:解释器选择才是 Python 环境配置的第一步
配置 Python 环境时,新手最容易误解的是“装好 Python 插件就够了”。实际上,插件只提供语言服务,真正决定代码在哪个环境运行的是解释器。我见过有人机器上同时有 base conda、venv、系统 Python,插件随机选了一个,导致安装的第三方库在编辑器里永远标红。解决方法是先安装官方扩展ms-python.python,然后按Ctrl+Shift+P执行“Python: 选择解释器”,手动选项目对应的虚拟环境路径。
确认解释器后,再看.vscode/settings.json是否自动写入了python.defaultInterpreterPath。如果团队协作,最好把解释器路径写到项目配置里并纳入版本控制,只是注意虚拟环境路径在不同机器上不通用,通常只提交相对于工作区的路径,或者在.env文件里做映射。Pylance 作为语言服务会提供补全和类型提示,如果代码提示一直不出来,先检查右下角选择的解释器版本,再看是否安装了 Pylance。
4.3 调试器:launch.json 最小配置与断点触发
运行和调试是两层需求。想在编辑器里直接调试 Python 脚本,点击任意一行左侧点击出红色断点,再按F5,VSCode 会提示选择一个调试环境;选择 Python,它会自动生成.vscode/launch.json。一个足够用的默认配置长这样:
{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "debugpy", "request": "launch", "program": "${file}", "console": "integratedTerminal", "cwd": "${fileDirname}" } ] }type为debugpy,这是新版 Python 插件使用的调试器标识;program指定要执行的 Python 文件,${file}表示当前活动文件;console设为integratedTerminal时,调试输出会进入集成终端而不是窗口右侧的调试控制台,便于处理中文输入输出;cwd设置工作目录,这直接影响代码里相对路径的读取位置。调试 Python 时不建议直接沿用别人的配置,因为虚拟环境目录可能不同,正确做法是让向导替你先生成,再按需修改。
C++ 调试同样走 launch.json,只是会多一个preLaunchTask字段,让 VSCode 在调试前先执行编译任务。配置项里需要写明program指向刚才编译生成的可执行文件路径,以及miDebuggerPath指向调试器 gdb 路径。一个很常见的报错是“程序文件不存在”,这一般不是调试配置写错了,而是preLaunchTask没执行成功,回头看 tasks 编译报错更实际。
4.4 为什么提示和跳转会一起失效:IntelliSense 引擎与 clangd 的冲突
C/C++ 环境配好后,不少人的下一个问题是“代码提示为什么突然没了”“右键没有跳转到定义”。这往往不是配置缺失,而是同时安装了两套互相打架的语言服务。微软官方ms-vscode.cpptools自带 IntelliSense 引擎,而clangd是另一套基于 Clang 的符号索引;两套并行时,VSCode 无法确定由谁提供符号,结果表现为跳转时灵时不灵、提示消失或者符号灰色。
我的建议是二选一:想要安装简单、不需要额外学配置,就只用 cpptools;如果追求跨平台一致性和更快的索引速度,可以考虑 clangd,但必须先禁用或卸载 cpptools 的“代码浏览/IntelliSense”相关能力。选定一个引擎后,删除项目根目录下可能残留的.cache或.clangd缓存目录,重启窗口,重新生成索引,问题通常就消失了。这个冲突排查步骤也适用于其他语言,凡是遇到“某插件装了但对应语言的服务不生效”,第一反应都应该是检查多个扩展是否接管了同一个语言服务。
5. 现象驱动的排查:跳转失效、中文乱码、远程连接超时,一次讲清
5.1 右键没有跳转到定义,所有符号全部变灰
现象是:按住Ctrl点击函数名没有反应,符号列表也是灰色;原因是语言服务器没有建立索引。先确认当前文件右下角的语言模式对不对,比如 C 代码要显示为“C”;再检查是否安装了多个语言插件互相冲突;最后清理工作区缓存。解决顺序是:先执行命令面板里的“C/C++: 重置 IntelliSense 数据库”,没有这个命令就先禁用所有语言服务类插件,只保留一家,重启窗口让插件重新索引文件。如果是 clangd,还需要确认compile_commands.json是否生成;没有这份文件,clangd 根本不知道项目用了哪些头文件,跳转自然失败。
5.2 集成终端中文乱码
Windows 上最常见的现象是程序输出中文变成锟斤拷或æµ一类乱码,原因是终端编码和程序输出编码不一致。VSCode 集成终端默认走的编码可能被 PowerShell 设置成 GBK,而 Python 或 C++ 源码又是 UTF-8 输出。解决有两种:一是在终端执行chcp 65001切换到 UTF-8,但这只对当前终端会话有效;二是在 VSCode 工作区配置里固定终端的默认编码:
{ "terminal.integrated.defaultProfile.windows": "PowerShell", "terminal.integrated.env.windows": { "PYTHONIOENCODING": "utf-8" } }PYTHONIOENCODING只针对 Python 进程,C++ 程序乱码则需要检查源码文件的保存编码是否为 UTF-8,以及编译器是否按 UTF-8 读取源文件。还有一个隐藏坑:Windows 控制台代码页和 VSCode 终端代码页是两套东西,直接在系统级改“使用 Unicode UTF-8”会让很多旧程序报错,不如只做项目级配置。
5.3 连接 SSH 远程服务器一直超时、失败
现象是配置完 Remote-SSH 后,连接过程卡在安装远端服务器版本,或者反复提示输入密码后超时。原因是远端机器缺少工具链,常见的是wget、unzip或tar缺失,导致远端服务器文件无法下载和安装。解决步骤是:先在本地终端手动执行ssh 用户名@主机地址验证单纯 SSH 是否通;如能登录,再在远端执行apt install tar wget补齐依赖;之后回到 VSCode 连接。注意 VSCode 连接远程服务器时需要远端能访问官方下载服务器,如果远端网络有限制,需要提前把对应版本的 VSCode Server 包传到目标机器并解压到~/.vscode-server目录。这里不用追求理解压缩包内部结构,但要知道排除顺序是“网络通不通、远端依赖全不全、远端权限对不对”。
5.4 插件装好了却完全不生效,命令面板搜索不到
现象是插件列表里显示已安装,但快捷键和命令都不存在。这里要先区分“工作区范围”和“全局范围”的扩展:部分扩展只对特定语言或特定文件夹生效,检查扩展面板里是否显示“已禁用”状态;如果是从旧版本升级过来的工作区,还要检查.vscode/extensions.json是否把插件标记成了不推荐。解决时先执行“开发人员: 重新加载窗口”强制重启扩展宿主,再看扩展详情页的“功能贡献”区域,里面列出了该插件注册的所有命令、视图和配置项。如果命令面板找不到,可以在插件详情页复制某个命令 id,再手动设置快捷键绑定。还有一个容易忽略的细节: 插件装在用户级目录,但工作区被某个系统级进程以不同权限打开,插件加载会受限,这也是一个冷门的排查方向。
6. 把配置沉淀成文件:用 .vscode 与 settings.json 让项目自己带动工具链
最后一章我只讲一个能力:配置工程化。VSCode 最强大的地方不是每个项目都能各自调一遍,而是你把配置写在.vscode/settings.json之后,整个团队共享同一套编辑器规则,谁打开项目都不需要重新教。我的习惯是每个项目都在第一轮调好之后,把.vscode目录连同tasks.json、launch.json一并提交到 Git;这会让新人加入时直接获得编译、调试和格式化能力。
下面这份配置是我做多语言项目常用的模板,格式化、文件树过滤、搜索排除一次到位:
{ "editor.formatOnSave": true, "files.exclude": { "**/.git": true, "**/node_modules": true, "build": true, ".venv": true }, "search.exclude": { "build": true, "dist": true, ".venv": true }, "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python" }files.exclude控制资源管理器里显示哪些目录,把 build 和 node_modules 隐藏之后,文件树立刻清爽很多;search.exclude控制搜索时跳过哪些目录,避免在编译产物里翻出大量无关命中;python.defaultInterpreterPath很好理解,但要注意如果虚拟环境路径写在项目绝对路径里,换一台电脑就会失效。团队协作时,我更建议用它指向一个可复现的环境文件名,或者在 README 里写清楚创建命令。
配置工程化的最后一步是尝试验证:把.vscode目录删除,仿照新成员重新打开项目,看还能不能一键编译。如果删掉配置后回到手动编译的老路,说明前几步没有沉淀好。我自己的教训是早期把大量设置写到了用户级 settings.json,导致项目换到别人电脑后表现完全不一样,后来才养成项目级优先的习惯。这个思路适合所有使用 VSCode 的领域——无论是 C++、Python、LaTeX 还是嵌入式 STM32 开发,工作区级的.vscode才是让配置跟项目一起走的正确载体。希望这篇基础教程能帮你少走弯路,也更愿意把更多时间花在实际代码上,那才是编辑器存在的意义。希望帮到你。
本文还有配套的精品资源,点击获取