文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载导读本文基于 vscode-docs 仓库中的官方发布说明 release-notes/v1_55.md系统梳理 VS Code 2021 年 3 月1.55版本带来的核心新特性并结合仓库内 终端 Profiles 专项文档、调试文档、Notebook 文档 与 Raspberry Pi 安装文档 进行源码级与配置级纵深讲解。读完本文你将掌握如何用terminal.integrated.profiles.platform配置自定义终端 Profiles、如何利用内联菜单编辑函数断点条件与命中次数、如何在 Notebook 中多选单元格并控制 diff 编辑器中元数据/输出的显示以及数据断点访问类型、Copy As子菜单、遥测 API 等面向扩展开发者的新能力。图1.55 中默认开启的编辑器 Tab 状态装饰图片来源release-notes/images/1_55/tabs-deco.png主题为 GitHub Light Theme版本概览与升级说明VS Code 1.552021 年 3 月发布是一期功能密度很高的月度更新官方发布说明 release-notes/v1_55.md 给出了本期高亮功能清单无障碍Accessibility改进屏幕阅读器支持多光标且朗读全部Say All单次读取行数上限从 100 行提升到 1000 行macOS Big Sur 品牌图标更新Stable、Insiders 与 Exploration 三套图标全部换新断点体验增强函数断点支持内联条件/命中次数编辑菜单数据断点支持全部三种访问类型编辑器 Tab 状态装饰默认开启文件存在警告、Git 修改等状态直接在 Tab 上展示键盘快捷键编辑器支持列宽调整基于新表格控件重构远程端口管理改进端口转发自动检测、正则命名等属 Remote Development 扩展终端 Profiles可在终端下拉菜单中定义并快速启动非默认 ShellNotebook 增强支持多单元选择、diff 编辑器可隐藏元数据/输出差异新增 VS Code on Raspberry Pi 文档说明如何在树莓派设备上安装 VS Code。版本提醒1.55 还发布了 1.55.1修复了一批 March 2021 Recovery 里程碑 issue与 1.55.2修复安全类 issue。官方推荐想第一时间体验新功能的用户使用夜间版Insiders构建。无障碍多光标播报与 1000 行朗读上限屏幕阅读器多光标支持1.55 为多个光标multi-cursor加入了初版屏幕阅读器支持每当新增一个光标时VS Code 会播报该光标及其所在的行列位置当次级光标被移除时也会播报。关于多光标编辑的基础用法可参考仓库文档 docs/editing/codebasics.md 中Multiple selections (multi-cursor)一节——AltClick添加光标、ShiftAltDown在下方逐行添加光标等操作仍不变1.55 的变化在于让这些操作对读屏软件可见。Say All 行数上限提升至 1000得益于上游Electron/Chromium 无障碍相关issue 的修复屏幕阅读器Say All命令单次可朗读的行数从 100 行提升至1000 行。官方说明指出要彻底取消上限仍需更多上游修复。伴随这一变化设置项editor.accessibilityPageSize被标记为弃用deprecated后续几个版本仍会兼容支持但计划在未来完全移除。如果你此前依赖该设置调整读屏分页大小建议迁移到新版行为。Workbench 工作台改进Windows 密钥加密方式变更1.55 在 Windows 上改变了密钥secrets的加密方式影响Settings Sync以及所有使用secretsAPI 的扩展。升级到 1.55 后Windows 用户会被自动登出需要重新完成身份认证。macOS Big Sur 品牌图标更新VS Code 团队根据 Big Sur 的视觉风格重新设计了品牌图标Stable、Insiders 与 Exploration 三个版本线均使用新 Logo且所有平台统一使用同一套图标StableInsidersExploration分栏拖拽sash定制增强新增workbench.sash.hoverDelay设置用于定义拖拽分栏时悬停反馈的延迟时长原有workbench.sash.size设置得到改进在保持 UI 简洁的同时为触屏设备保留更大的可抓取区域。List/Tree 导航改进列表与树控件新增一种自定义键盘导航模式在 Notebook 等区域中的行为更自然同时ShiftClick的范围选择行为变得更确定、可预测。编辑器 Tab 装饰默认开启workbench.editor.decorations.colors与workbench.editor.decorations.badges两个设置控制 Tab 装饰1.55 起默认开启。文件存在警告/错误、Git 修改状态等信息会以颜色与徽标形式直接显示在编辑器 Tab 上见本文开头配图。键盘快捷键编辑器支持调整列宽Keyboard Shortcuts 编辑器已重构为基于新的表格控件现在可以在编辑器中自由调整列宽。扩展管理改进VS Code 现在能检测通过CLI安装/卸载的扩展扩展可在当前活动窗口中即时激活/停用并在扩展视图Extensions view中正确显示对于设置了extensionPack属性的扩展即使其类别不是 Extension Packs也会在单独的Extension Pack标签页中列出其包含的扩展集合问题面板Problems view负向文本过滤过滤框内以!开头即可过滤掉不包含指定文本的问题。例如输入!typography可以隐藏所有与 typography 无关的问题以外的条目——严格说是保留所有不含该文本的问题项。Marketplace issue 上报直达VS Code 的 issue 上报器现已支持直接向微软新的 vsmarketplace 公共仓库 创建 issue方便反馈扩展市场相关问题。扩展树视图悬停延迟可配置扩展贡献的树视图tree view悬停延迟现在可通过workbench.hover.delay设置。Emmet 配置收敛emmet.extensionsPath设置现在只接受字符串数组并可直接在设置编辑器中修改不再接受单个字符串。仅搜索已打开编辑器Search Only in Open Editors工作区搜索的Search Only in Open Editors复选框开启后从搜索整个工作区切换为只搜索已在编辑器 Tab 中打开的文件。1.55 增强了该功能——此前需要通过 opt-in 开启现在已默认启用并正确处理了尚未在本次 VS Code 会话中加载的文件。源代码管理输入框字号新增scm.inputFontSize设置可单独调整 Source Control 输入框的字体大小。集成终端终端 Profiles 深度实战终端 Profiles 是 1.55 的重头戏。它允许你在终端下拉菜单中定义多套 Shell 启动配置从而便捷地启动非默认 Shell。仓库中的 docs/terminal/profiles.md 对该功能进行了完整的专项讲解可与本发布说明互为补充。自动检测与手动配置VS Code 会自动检测并展示一些常见 Shell同时你可用terminal.integrated.profiles.platform设置platform取windows、linux、osx新增、修改或删除默认 Profiles。官方发布说明中的示例Windows 平台terminal.integrated.profiles.windows: { // 新增一个不执行 PowerShell profile 启动脚本的 Profile PowerShell (No Profile): { // 部分 source 可用于自动检测复杂场景 source: PowerShell, args: [-NoProfile], // 用静态名称 PowerShell (No Profile) 覆盖动态终端标题 overrideName: true }, // 删除内置的 Git Bash Profile Git Bash: null, // 新增 Cygwin Profile Cygwin: { path: C:\\cygwin64\\bin\\bash.exe, args: [--login] } }结合 docs/terminal/profiles.md 的说明Profile 的两种定义方式分别是source仅 Windows 可用让 VS Code 自动检测PowerShell或Git Bash的安装位置path直接指向 Shell 可执行文件的绝对路径。除path/source/args外还支持以下参数overrideName布尔值是否用静态 Profile 名称覆盖检测出的动态终端标题env环境变量映射置为null可删除某变量所有 Profile 可统一用terminal.integrated.env.platform配置iconProfile 使用的图标 IDcolor主题色 ID用于给图标着色。删除内置 Profile 的方式是把其名称置为null如上面的Git Bash: null。设置默认 Profile 可用terminal.integrated.defaultProfile.platform例如{ terminal.integrated.profiles.windows: { my-pwsh: { source: PowerShell, args: [-NoProfile] } }, terminal.integrated.defaultProfile.windows: my-pwsh }Select Default Profile 命令与 WSL 自动检测官方推荐首次添加 Profile 的方式是执行Terminal: Select Default ProfileSelect Default Profile命令它可以基于现有 Profile 或检测到的其他 Shell 快速创建配置1.55 同时新增了对WSL Profile 的自动检测检测到的 WSL 发行版默认会出现在列表中如不需要可用terminal.integrated.useWslProfiles设置关闭。此外Cygwin现在也会被自动检测并出现在Select Default Profile命令中Git Bash默认以登录 Shell 方式运行会执行~/.bash_profile。作为进阶参考docs/terminal/profiles.md 还给出了手动配置 WSL 发行版如 Debian的写法path指向wsl.exe并用args传入-d与发行版名称它同时提醒安装在可被其他用户写入的不安全路径如C:\msys64下的 Shell 会被检测但不会直接暴露为 Profile必须通过Select Default Profile命令显式配置配置时会有安全警告。WebGL 渲染器成为新默认早在 2019 年 11 月版本v1.41VS Code 就引入了实验性 WebGL 渲染器当时的测算显示其性能最多可提升 900%在标准 2D canvas 渲染有问题的环境中提升更大。经过一年多的稳定性改进与功能补齐1.55 正式将 WebGL 渲染器设为默认。配套的降级fallback逻辑如下——当terminal.integrated.rendererType: auto时WebGL 渲染器尝试启动若失败例如操作系统/浏览器不支持启用 canvas 渲染器并开始测量渲染每帧所需时间若前 20 帧渲染缓慢例如存在硬件问题或 GPU 渲染被禁用则启用 DOM 渲染器。官方同时预告下一个版本将移除rendererType设置改用更易理解的terminal.integrated.gpuAcceleration: auto | on | off。这一演进在仓库 docs/terminal/appearance.md 的 GPU acceleration 一节中得到印证auto会先尝试 WebGL 渲染器、失败后回退到 DOM 渲染器在 Linux 虚拟机、不支持 WebGL 的浏览器或驱动过旧的机器上 WebGL 可能无法正常工作此时可用--disable-gpu启动参数或将terminal.integrated.gpuAcceleration设为off规避见 docs/terminal/basics.md 中的示例配置。无缝终端重启Seamless terminal relaunching上一版本引入了当扩展想变更环境变量时自动重启终端的能力1.55 消除了重启时的闪烁如果新终端的输出与旧终端完全一致重启过程不会产生任何可见反馈或干扰。若想完全关闭自动重启可将terminal.integrated.environmentChangesRelaunch设为false。编辑器自动闭合括号的删除行为变更在自动闭合成对括号/引号内部按Backspace的行为发生了变化只有当该闭合字符是由编辑器自动插入时才会一并删除与之匹配的闭合括号或闭合引号。该行为由新设置editor.autoClosingDelete控制设置为always即可恢复旧行为。调试断点增强全面解析函数断点内联编辑菜单函数断点function breakpoint现在提供内联菜单来编辑条件和命中次数hit count。此前内联编辑按钮只能自动选择编辑哪个条件现在菜单让流程更清晰用户控制力更强关于条件断点与命中次数的完整操作可参考 docs/debugtest/debugging.md表达式条件表达式求值为true时暂停命中次数断点被命中指定次数后暂停支持语法因调试器而异等待断点另一断点命中后本断点才激活触发式断点。创建方式编辑器左侧装订线右键 →Add Conditional Breakpoint或命令面板执行Debug: Add Conditional Breakpoint...然后选择条件类型并输入表达式/命中次数/激活断点对已有断点右键选择Edit Breakpoint或点击BREAKPOINTS区的铅笔图标即可修改。数据断点支持全部访问类型通用调试器 UI 现在支持 Debug Adapter ProtocolDAP定义的全部数据断点访问类型在 VARIABLES 视图的右键菜单中以操作项呈现Break on Value Read变量每次被读取时命中Break on Value Change变量每次被修改时命中此操作此前已可用Break on Value Access变量被读取或修改时命中。请注意调试扩展需要主动接入该特性才能让对应操作项可用。截至 1.55只有Mock Debug扩展模拟支持全部三种访问类型官方预计 Java 等扩展很快跟进。仓库 docs/debugtest/debugging.md 的 Data breakpoints 一节也确认数据断点通过 VARIABLES 区变量右键菜单的Break on动作创建以红色六边形图标显示。启动被调试程序前自动清空终端部分调试扩展允许在集成终端中启动被调试程序。为控制终端数量VS Code 会复用未被阻塞没有正在运行的命令的终端这会导致旧的命令与程序输出残留在终端里造成困惑。1.55 新增设置debug.terminal.clearBeforeReusing开启后在新调试会话开始前自动清空集成终端。JavaScript 调试vscode-js-debugStart Debugging and Stop on Entry 回归新调试器迁移时被暂时搁置的Debug: Start Debugging and Stop on Entry功能恢复工作请求调试器在 Node.js 程序首行暂停默认绑定F10符号链接处理改进调试使用符号链接的 Node.js 程序此前需要特殊标志否则断点无法绑定且难以排查。现在调试器会自动检测此类情况并给出提示通知。Notebook多选单元与差异化 diff 视图多单元选择1.55 起 Notebook 支持使用鼠标ShiftClick或键盘ShiftArrow选择多个单元格。选中后可对多个单元执行复制、剪切、粘贴、移动、复制副本等操作也可以整体拖放。仓库 docs/datascience/jupyter-notebooks.md 给出了更完整的多选操作细节从一个处于选中状态的单元开始被选中的单元会显示填充背景选择连续单元按住Shift点击最后一个目标单元选择任意组合按住Ctrl依次点击要加入选择的单元移动多个单元可用任一被选单元上的拖放区域或命令模式下AltArrow。局限性当存在多个互不相邻的单元选择区间时大多数命令只对第一个或当前聚焦的区间生效官方表示后续版本会继续改进。此外新增颜色令牌notebook.inactiveSelectedCellBorder默认无颜色供偏好用边框而非背景色表示多选的主题使用。diff 编辑器显示/隐藏输出与元数据差异审阅 Notebook 变更时单元格元数据metadata或输出outputs的改动可能造成干扰。1.55 新增两个设置控制 diff 编辑器中这些差异的可见性notebook.diff.ignoreMetadata忽略元数据差异notebook.diff.ignoreOutputs忽略输出差异。也可通过编辑器标题工具栏的Show Outputs/Metadata Differences命令快速切换可对照 docs/datascience/jupyter-notebooks.md 中定制 diff 视图显示内容的描述理解该机制。预览特性可扩展 Markdown 渲染器与 Getting StartedNotebook 中可扩展 Markdown 渲染器1.55 继续改进 Notebook 中 Markdown 渲染器的扩展支持重点是新渲染器的性能并修复大量回归。新渲染器默认仍关闭可用未文档化的设置开启notebook.experimental.useMarkdownRenderer: true重启 VS Code 后可在 Markdown 单元格中使用:emoji:与 KaTeX$math$公式Getting Started 启动页改造默认启动编辑器startup editor继续向由扩展贡献提示与 walkthrough方向重构让核心功能与扩展能力对新手更友好。可用workbench.startupEditor设置控制设为gettingStarted开启新体验Insiders 已大面积可见Stable 逐步灰度改回其他值即可退出。扩展作者Extension authoring新能力Untitled 文件 API自定义编辑器custom editors与 Notebooks 的打开上下文open context新增untitledDocumentData属性包含用户在 untitled 文件上触发Reopen With时的缓冲区数据。当该属性有值时应读取它而不是 URI——因为 untitled 文件场景下 URI 并不指向磁盘上的真实文件。Inline values provider API 正式化上一里程碑引入的 proposed inline values provider API 在 1.55正式定稿扩展可以发布到 Marketplace 供用户使用内联值提供器可把变量值直接显示在编辑器中类似调试时的内联显示。新增 Copy As 子菜单新增两个菜单位置UI 上呈现为Copy As子菜单menuBar/edit/copy菜单栏Edit菜单editor/context/copy编辑器右键菜单。ExtensionContext 新增 extension 属性扩展的activate函数收到的ExtensionContext新增extension属性返回与vscode.extensions.getExtension(extension-id)相同的Extension实例包含扩展 ID、版本号以及序列化的packageJSON属性——可通过它直接读取扩展package.json中的数据。Docker compose 语言新增 Docker compose 语言语言 ID 为dockercompose扩展作者可用其定位 Docker compose 文件对普通用户几乎无感知变化。遥测启用状态 API此前扩展只能通过telemetry.telemetryLevel配置值判断用户是否关闭遥测无法感知 CLI 标志--disable-telemetry。1.55 在扩展 API 的env对象上新增两个属性isTelemetryEnabled综合 CLI 标志与当前配置值后的最终启用状态onDidChangeTelemetryEnabledisTelemetryEnabled变化时触发的事件。Workspace Trust 开发预告官方继续推进Workspace Trust安全特性临近发布时邀请扩展作者提前接入并反馈。未适配 Workspace Trust 的扩展将继承安全默认值官方建议扩展作者关注 issue #106488 并订阅更新。该特性的最终形态在仓库中已有专项文档 docs/editing/workspaces/workspace-trust.md可了解信任边界、信任开关与受信任/不受信任模式下的功能差异。面向扩展作者的 Proposed APIs每个里程碑都会带来新的 proposed API扩展作者可按如下步骤试用注意proposed API 不能用于发布扩展因为下个版本可能有破坏性变更必须使用Insidersproposed API 变化频繁在扩展package.json中加入enableProposedApi: true将最新版 vscode.proposed.d.ts 复制到项目源码目录。1.55 的 proposed API 要点Testing测试 API 的 provider 部分重构为按需、异步加载测试的方案本期已合入预计 4 月迭代开始定稿CodeActionContext.triggerKind标记代码操作code actions被请求的原因取值Invoke用户通过快捷键/命令显式触发与Automatic无显式用户操作如文档内容变化时自动请求。Provider 可据此返回不同结果——例如自动触发时只返回针对当前精确选择的重构减少灯泡lightbulb闪烁显式触发时则自动扩展选区以展示当前位置可能感兴趣的全部重构PortAttributesProvider远程扩展场景下任何监听端口的进程都会被自动转发端口但很多端口仅供扩展内部使用。PortsAttributesProviderAPI 允许在端口被检测到时设置行为阻止不面向用户的端口被自动转发Quick input options titleshowQuickPick的QuickPickOptions与showInputBox的InputBoxOptions新增可选title属性此前仅createQuickPickAPI 支持设置后会在快速输入框顶部显示标题栏。协议层更新LSP 与 DAPLanguage Server Protocol诊断拉取模型diagnostic pull model规范草案已开放反馈Debug Adapter Protocolstopped 事件新增可选属性hitBreakpointIds携带触发该事件的断点 ID 列表。注意 VS Code 目前尚未在 UI 中展示该信息相关 UI 方案正在 issue #118743 中讨论。工程与文档动态工程改进Snap 启动加速snap 包改用lzo压缩算法启动更快详见 Ubuntu 官方博客对该算法的介绍Electron sandbox 进展为启用 Electron 的 sandbox 与 context isolation 特性持续推进——部分 renderer 中的原生模块依赖已迁移到其他进程更多组件与服务在 sandbox 开启时可用了。文档新增VS Code 与课堂 JavaScript 教学收录泰国 Naresuan 大学计算机科学讲师在入门 Web 开发课上使用 VS Code JavaScript/Node.js 的案例研究以及他推荐的设置、扩展和 Node.js JavaScript Education Extension PackRaspberry Pi 安装文档新增 docs/setup/raspberry-pi.md 主题介绍如何在树莓派设备上安装 VS Code。虽然非官方支持但可通过 Raspberry Pi OS原 Raspbian的 APT 仓库安装 32/64 位版本sudo apt update sudo apt install code安装完成后在终端输入code或通过Programming菜单启动升级同样走 APTsudo apt update sudo apt upgrade codeNotable fixes1.55 值得关注的问题修复官方发布说明列出的典型修复完整清单见 release-notes/v1_55.md Notable fixes 一节74505Emmet 内置插件以开头的缩写仅在块内展开97632编辑纯 XML 文档时 Emmet 误触发112675Emmet 缩写无法在.scss文件中工作115814集成终端中无法输入中文117967复制 粘贴会自动在新 Tab 打开文件118557嵌套文件夹工作区中files.exclude行为异常119585关闭文件时所有问题Problems消失。小结1.55 版本的关键收获1.55 是 VS Code 在终端体验与调试体验两个维度的重要里程碑终端 Profiles提供了系统化的 Shell 启动配置能力配合 WSL/Cygwin 自动检测与 WebGL 渲染器默认化断点增强覆盖函数断点内联编辑与数据断点全部访问类型Notebook 多选补齐了多单元编辑的高频场景而面向扩展作者的extension属性、Copy As子菜单、遥测 API 与定稿的 inline values provider API 则为生态建设继续铺路。若需查阅各特性的最新形态与完整用法可继续深入本仓库的 docs/terminal/profiles.md、docs/debugtest/debugging.md、docs/datascience/jupyter-notebooks.md、docs/setup/raspberry-pi.md 与 docs/editing/workspaces/workspace-trust.md 等专项文档。赞分享文档教程【免费下载链接】vscode-docsPublic documentation for Visual Studio Code项目地址https://gitcode.com/gh_mirrors/vs/vscode-docs点击查看免费下载相关推荐Visual Studio Code 1.102017 年 2 月版本详解Minimap、列断点、任务编排与扩展能力升级Visual Studio Code 1.102017 年 2 月版本详解Minimap、列断点、任务编排与扩展能力升级 VS Code 1.10Feb文档教程Visual Studio Code 1.702022 年 7 月更新全览折叠增强、Shell 集成与三路合并编辑器实战指南Visual Studio Code 1.702022 年 7 月更新全览折叠增强、Shell 集成与三路合并编辑器实战指南 本文基于 vscode do文档教程Visual Studio Code 1.1012025 年 5 月版本解析MCP 全面增强、Chat 工具集与 Agent 编码工作流升级Visual Studio Code 1.1012025 年 5 月版本解析MCP 全面增强、Chat 工具集与 Agent 编码工作流升级 导读 本文文档教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考