- 文档
- 教程
【免费下载链接】vscode-docs
Public documentation for Visual Studio Code
本指南以 Visual Studio Code(VS Code)官方文档仓库 vscode-docs 中的"核心编辑器功能(Core editor features)"总览为骨架,系统梳理这个跨平台代码编辑器从编辑、运行、调试、测试到源码控制与终端的一体化工作流。读完本文,你将掌握工作台(workbench)六大界面区域、工作区(workspace)的组织方式、语言感知编辑(IntelliSense)、任务与调试循环、内置 Git 支持、集成终端以及设置/配置/扩展/Profile 的定制体系,并知道每一部分应深入阅读仓库中的哪份权威文档。
一个编辑器,覆盖整个开发工作流
VS Code 不预设编程语言、操作系统或开发工具集,而是提供一个能随项目形态自适应的统一工作台。它把代码编辑与整个开发闭环收敛到同一个窗口中,其核心理念可概括为四点:
- 在一个地方工作:文件访问、代码智能、集成终端、源码控制、调试器和测试都在同一窗口内完成。各工具共享项目上下文,在"写代码"与"验证改动"之间切换的摩擦被降到最低——例如从编辑器直接跳到调试会话,或从改动直接进入 Git 提交。
- 带入你自己的工具与技术栈:继续使用你已有的编译器、命令行工具、Shell 和源码控制工作流。需要为某种语言、框架或服务补齐能力时,通过扩展(Extensions)安装即可。
- 在你代码运行的地方工作:既可在本地开发,也可连接远程机器或容器(Remote-SSH、Dev Containers 等),还能通过 VS Code for the Web 做轻量级改动。
- 让编辑器为你所用:自由定制布局、快捷键与行为,并使用 Profile(配置集)在不同项目或任务之间快速切换整套配置。
认识工作台:界面六大区域
VS Code 的窗口被称为工作台(workbench)。它的布局在用户界面文档中被划分为六个主要区域,设计目标是最大化编辑器空间,同时保留浏览项目上下文的充分余地:
| 区域 | 作用 |
|---|---|
| 编辑器(Editor) | 编辑文件的主区域,可横向或纵向并排打开任意多个编辑器。 |
| 主侧边栏(Primary Side Bar) | 承载资源管理器(Explorer)等协助视图。 |
| 次侧边栏(Secondary Side Bar) | 位于主侧边栏对面,默认放置 Copilot Chat 视图,可从主侧边栏拖放视图过来。 |
| 状态栏(Status Bar) | 显示当前项目与所编辑文件的状态信息(如当前分支、编码、行号等)。 |
| 活动栏(Activity Bar) | 位于最左侧,用于切换各视图,并提供上下文相关指示(例如启用 Git 后显示待推送/待提交改动数)。右键可调整其位置。 |
| 面板(Panel) | 编辑器区域下方的附加视图空间,默认容纳输出、调试信息、错误与警告(Problems)以及集成终端;也可移到左侧或右侧以换取更多垂直空间。 |
每次启动 VS Code,它都会恢复到上次关闭时的状态——文件夹、布局和已打开文件都被保留。主侧边栏可通过右键活动栏选择Move Primary Side Bar Right移到右侧,或用快捷键切换其可见性。
在此基础上,工作台还提供一系列提升导航效率的内置能力:
- Minimap(缩略图):编辑器右侧的代码大纲,可点击或拖拽阴影区域快速跳转;支持显示
//#region折叠标记名,可通过editor.minimap.side移到左侧、用editor.minimap.enabled: false彻底关闭。 - Sticky Scroll(粘性滚动):将当前可见嵌套作用域的起始行固定在编辑器顶部,方便随时了解自己在文件中的位置并跳回作用域顶部;用
editor.stickyScroll.enabled开关。它依次使用大纲提供者、折叠提供者、缩进三种内容模型生成标题,缺省时回退到下一模型,默认模型由editor.stickyScroll.defaultModel决定。 - Breadcrumbs(面包屑):编辑器顶部的导航栏,始终显示文件路径,语言支持符号时还显示到光标位置的符号路径,可在视图 > 外观 > 切换面包屑中关闭。
- 缩进参考线:帮助快速对齐缩进层级,可用
editor.guides.indentation: false关闭。
工作区:项目的组织单位
一个工作区(workspace)是当前 VS Code 窗口中打开的一个或多个文件夹的集合。绝大多数情况下打开单个文件夹即是工作区;需要同时承载多个独立目录时,可使用多根工作区。工作区的价值在于它让 VS Code 能够:
- 配置仅对特定文件夹生效的设置;
- 持久化任务与调试启动配置;
- 保存并恢复该工作区的 UI 状态(例如已打开的文件);
- 针对该工作区有选择地启用或禁用扩展。
打开工作区有两条路径:菜单File > Open Folder...选择文件夹;或在终端中把路径作为参数传给code命令:
code .打开后无需额外操作,文件夹即成为工作区,VS Code 会自动跟踪已打开文件、编辑器布局等配置,再次打开时恢复原状。
单文件夹工作区的专属配置存放在.vscode文件夹中:工作区设置写入.vscode/settings.json,任务与启动配置也放在.vscode下。多根工作区则把配置集中进<name>.code-workspaceJSON 文件,其folders数组列出所有根文件夹:
{ "folders": [ { "path": "my-folder-a" }, { "path": "my-folder-b" } ] }多根工作区打开后,文件资源管理器根部会显示额外的(Workspace)后缀以示区分。设置作用域遵循"文件夹设置覆盖.code-workspace设置,工作区设置覆盖用户设置"的优先级。值得一提的是.code-workspace的folders支持相对路径,因此这类工作区文件对团队中任何位置的克隆都通用——这是把多个项目整合进同一窗口、或为同一项目建立client.code-workspace/server.code-workspace等场景化视图的推荐做法。
另外,VS Code 也支持完全不开工作区:例如从系统文件菜单直接打开单个文件时,编辑能力仍可用,但任务等部分能力会受限(任务仅在打开工作区文件夹时可用)。
编辑与理解代码:从基本编辑到语言感知
编辑器是 VS Code 的第一身份。它把通用文本编辑能力与语言感知辅助结合起来,覆盖"写、导航、重构"的完整循环。
基本编辑(Basic editing)
基本编辑指南覆盖高频生产力特性:
- 多光标(Multi-cursor):用
Alt+Click添加次级光标,或使用"在下方/上方插入光标"命令逐行扩展;"选择下一个匹配项"可把当前选中词的下一个出现位置一并选中。习惯其他编辑器(如 Sublime Text、Atom)的用户,可把editor.multiCursorModifier从alt改为ctrlCmd(对应 Windows/Linux 的Ctrl+Click与 macOS 的Cmd+Click),"转到定义"和"打开链接"手势会随之自动避让。 - 列(框)选择:光标置于一角后按住
Shift+Alt拖到对角即可;粘贴列选择时默认spread模式把复制的每一行按列插入,editor.multiCursorPaste设为full则按普通多行文本粘贴。 - 自动闭合括号/引号:
editor.autoClosingBrackets提供languageDefined(默认,按语言配置决定)、beforeWhitespace、always、never四个档位;引号行为由editor.autoClosingQuotes单独控制。 - 保存与自动保存:默认需手动保存(快捷键触发),未保存改动会在编辑器标签显示圆点并在资源管理器显示徽标。打开Auto Save后可免去显式保存,
files.autoSave支持off、afterDelay(默认延迟 1000ms,由files.autoSaveDelay调整)、onFocusChange、onWindowChange四种模式;还可在settings.json中按语言覆盖,例如对 LaTeX 文件关闭自动保存:"[latex]": { "files.autoSave": "off" }。 - Hot Exit(热退出):默认情况下,通过File > Exit退出或关闭最后一个窗口时,未保存改动会被记住并在下次启动时恢复,避免意外丢失。
IntelliSense 与代码导航
对于受支持的语言,IntelliSense 基于代码本身提供补全、参数信息和内联文档;代码导航帮助你跨项目在定义、引用与符号之间移动;重构工具提供语言感知的代码变换;用户代码片段则用于复用常见代码。这些能力来自内置语言支持与扩展,具体特性随语言而异——仓库中的语言文档覆盖了 C/C++、C#、Python、Java、Go、Rust、JavaScript/TypeScript、Markdown 等主流语言栈的配置方式。
运行、调试与测试:编辑器内的验证循环
运行、调试与测试构成改动过程中的连续闭环,VS Code 把它们全部带入工作台,同时继续使用项目自身的工具与运行时。
用任务(Tasks)自动化重复命令
任务可以把构建、脚本等外部工具的重复命令自动化。工作区或文件夹级任务通过.vscode下的tasks.json配置,扩展也可通过任务提供者(Task Provider)贡献任务。以 TypeScript 为例,在项目根执行tsc --init生成tsconfig.json后,创建HelloWorld.ts,按构建快捷键或运行Run Build Task即出现"tsc: build / tsc: watch"选择项。通过Configure Default Build Task选择tsc: build后生成的tasks.json如下:
{ "version": "2.0.0", "tasks": [ { "type": "typescript", "tsconfig": "tsconfig.json", "problemMatcher": [ "$tsc" ], "group": { "kind": "build", "isDefault": true } } ] }这里并未定义新任务,而是把 TypeScript 扩展贡献的tsc: build标注为默认构建任务,此后按构建快捷键即可直接编译。任务系统还支持自动检测:Gulp、Grunt、Jake、npm 的任务会被自动发现;选中任务时,problemMatcher(如$tsc、ESLint stylish)把工具输出解析为编辑器中的问题列表。
调试器(Debugger)
调试指南介绍了从第一次调试会话到深入排查的完整路径:在编辑器页边距单击(或按断点切换快捷键)设置断点,启动调试后程序停在断点时,可在VARIABLES段查看变量、在CALL STACK段查看调用栈。Debug 工具栏提供 Continue/Pause、Step Over、Step Into、Step Out、Restart、Stop 等动作。断点体系还包括:
- 条件断点:仅当表达式为真、命中指定次数(Hit count)或等待另一个断点触发时暂停;
- 触发断点:在其他断点命中后才激活,适合只在特定代码路径或状态后才出现的故障;
- 行内断点:针对同一行包含多条语句(如压缩代码)按列暂停;
- 函数断点:在执行进入某个函数时暂停,适合知道函数名但未打开其源码的场景。
VS Code 内置 JavaScript/TypeScript/Node.js 调试器;其他语言和运行时通过调试器扩展接入。需要自定义入口点、命令行参数、环境变量等时,创建launch.json配置即可。
测试(Testing)
Testing 视图借助测试扩展自动发现测试,让你能在代码旁直接运行、调试并查看测试结果,把测试真正纳入日常编辑循环。
源码控制:让 Git 贴近代码
集成的源码控制让项目历史与状态始终贴近代码。VS Code 内置 Git 支持,可在不离开编辑器的情况下查看文件改动、对比内联差异、在编辑与版本控制操作之间无缝切换。需要前置条件是本机安装 Git,并配置提交作者信息:
git config --global user.name "<your-name>" git config --global user.email "<your-email>"常用工作流均有对应指南:
- 审查、暂存与提交改动:在Changes / Staged Changes列表中选择文件,用差异编辑器逐行审查,可暂存单个文件甚至单行改动后提交;
- 管理分支与工作树:用分支开发独立工作线、用 stash 暂存未提交改动、用 worktree 在独立文件夹检出其他分支;
- 解决合并冲突:Git 无法自动合并时,使用内联操作或三方合并编辑器解决;
- 在 GitHub 上协作:克隆与推送使用内置 Git 支持;创建/审查 Pull Request、管理 Issue 则安装 GitHub Pull Requests and Issues 扩展。
编辑器内 Git 与命令行 Git 操作的是同一个仓库,两种界面之间无需导入或同步。此外,Timeline 视图(资源管理器底部)可查看单个文件的 Git 提交历史与本地保存历史,本地历史条目默认上限 50 条/文件、单条上限 256KB,可用于误删文件的恢复。
集成终端:把 Shell 带进工作台
集成终端在工作台内运行一个完整 Shell,与独立终端一样可以执行mkdir、git等命令。打开方式包括Terminal > New Terminal、View > Terminal、命令面板、资源管理器右键Open in Integrated Terminal以及切换/新建终端的键盘快捷键。新终端默认在工作区根目录启动,并支持:
- 多终端与分组:可同时打开多个终端,用分割按钮或命令把终端并排成组,拖拽标签可重新排列或在组间移动;
- 编辑器区终端:通过Terminal: Create New Terminal in Editor Area命令把终端作为普通编辑器标签打开,可借助编辑器组布局系统与代码文件任意排列,
terminal.integrated.defaultLocation可控制默认落点(view或editor); - Shell 集成(Shell integration):在命令左侧和滚动条上显示装饰,感知命令及其输出,支撑命令导航、命令状态检测等功能;
- Shell 选择与配置:不同 Shell(PowerShell、Command Prompt、Bash、WSL 等)显示在Launch Profile下拉框中,可用终端 Profile 配置默认 Shell;
- 缓冲区导航:内容区称为 buffer,默认保留 1000 行 scrollback(
terminal.integrated.scrollback),支持按行/按页/按命令滚动; - 链接检测:内置链接处理器按优先级识别 URI/URL、经验证存在的文件链接以及工作区/命令链接,按住
Ctrl(macOS 为Cmd)单击即可打开。
终端外观可通过 appearance 文档 个性化。另外注意:当工作区处于受信任限制模式(Restricted Mode)时,为避免 Shell 自动执行基于工作区内容的代码,打开终端会被阻止。
定制与扩展编辑器
VS Code 以合理默认值起步,但把外观与行为的控制权完全交给你。
设置(Settings)
几乎所有编辑器行为都由设置管理,可全局(用户设置)或按项目(工作区设置)配置,值存储于settings.json。打开Settings Editor后,可用搜索框过滤、用齿轮图标Reset Setting恢复默认值,输入@modified可快速列出所有被修改过的设置。User与Workspace两个标签页对应两种作用域,工作区设置覆盖用户设置,适合团队共享项目级配置。也可以直接用Preferences: Open User Settings (JSON)命令编辑用户settings.json,或编辑工作区根.vscode/settings.json。
以编辑器界面定制为例,用户界面文档给出的常见设置包括:
- 隐藏菜单栏:
"window.menuBarVisibility": "toggle"或"hidden"(Windows/Linux); - 关闭标签页:
"workbench.editor.showTabs": "single",或设为none完全不用标签页; - 新标签位置:
"workbench.editor.openPositioning": "left"; - 自定义标签标签文字:启用
workbench.editor.customLabels.enabled后用 glob 模式匹配文件路径并指定${filename}、${dirname}、${extname(N)}等变量模板,例如"**/src/**/index.html": "${dirname}/${filename}"; - 并排编辑方向:
"workbench.editor.openSideBySideDirection": "down"让新编辑器在下方而非右侧打开; - 焦点模式:Zen Mode隐藏除编辑器外的全部 UI 并全屏居中,相关
zenMode.*设置可逐项开关活动栏、状态栏、行号、标签页等; - 通知管理:请勿打扰模式(Do Not Disturb)通过状态栏铃铛图标启用,可全局禁用或按扩展选择性禁用通知。
工作台还支持并排编辑(Alt+单击资源管理器文件、Split Editor、Open to the Side等)、编辑器组(Grid layout,可从View > Editor Layout菜单选择预设布局)、浮动窗口(多显示器场景把编辑器/终端/视图拖出为独立窗口并置顶)以及模态编辑器(Settings、Keyboard Shortcuts、Profiles 等配置编辑器默认以居中模态浮层打开,可用workbench.editor.useModal控制)。
扩展(Extensions)
扩展为编辑器添加语言、调试器、源码控制提供者以及与外部工具和服务的连接。扩展视图(活动栏中的拼图图标)可浏览、搜索并安装来自 Visual Studio Marketplace 的扩展;已安装扩展还能向命令面板贡献新命令。
Profile 与设置同步
Profile 允许在不同项目或任务之间切换整套扩展、设置与 UI 定制——例如一套"前端开发"配置、一套"数据科学"配置,互不干扰。Settings Sync 则把配置跨设备共享,换机后无需手工重建环境。
用 AI Agent 构建应用
VS Code 内置 GitHub Copilot,其 AI Agent 可以从单条自然语言提示自主规划方案、创建并编辑多个文件、运行终端命令并迭代修复错误。在 Copilot Chat 视图中新建聊天,配置Session Target(Copilot,本机运行 agent 流程)、Agent(使用工具规划、编辑、运行命令并验证结果)、Language model(Auto 按任务复杂度与可用性自动选模型)、Permissions(Manual permissions,需批准工具运行与资源访问,且允许 agent 在你的项目文件夹内做文件编辑),然后输入类似下面的提示:
Create a recipe list app with HTML, CSS, and JavaScript in separate files. Include an input field to add recipes with a name and description, a list to display them, and a delete button for each item. Use modern styling. Add some sample recipes to the list.Agent 会在聊天视图中汇总改动的文件,你可在其中或 Source Control 视图逐个查看 diff;若方向偏离可随时引导或停止请求,停止不会撤销已完成的动作,需要撤销工作区文件改动时可恢复检查点。后续可继续对话追加功能,例如"Add the ability to mark recipes as favorites with a star icon"。仓库中的 agents quickstart 提供了聚焦提示、审查、验证与恢复的完整工作流。
下一步
本指南是进入 VS Code 世界的总入口,每个主题在仓库中都有对应的深入文档:
- 跟随编辑器教程完成一次实操入门,从打开文件夹到用 AI Agent 构建 Web 应用、安装扩展、配置设置、提交 Git 并完成一次调试;
- 阅读编辑技巧与诀窍提升日常效率;
- 学习如何在远程机器或容器中开发;
- 深入用户界面与工作区的完整细节。
- 文档
- 教程
【免费下载链接】vscode-docs
Public documentation for Visual Studio Code
相关推荐
FAISS索引在KRISSBERT中的应用:实现高效生物医学实体检索的终极指南
FAISS索引在KRISSBERT中的应用:实现高效生物医学实体检索的终极指南 在当今海量生物医学文献中,如何快速准确地链接实体概念?🤔 这就是KRISSBE
一站式掌握Vertex AI Creative Studio:从项目概览到核心功能全解析
一站式掌握Vertex AI Creative Studio:从项目概览到核心功能全解析 Vertex AI Creative Studio是基于Google
AI 应用大模型媒体生成语音音频终极指南:FingerprintJS Agent类核心功能与生命周期管理详解
终极指南:FingerprintJS Agent类核心功能与生命周期管理详解 FingerprintJS是一款强大的浏览器指纹识别库,其核心功能由Agent类驱
前端风险控制
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考