跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

VSCode怎么设置资源管理器文件嵌套_VSCode如何让相关文件自动折叠嵌套显示【详解】

VSCode 1.86+ 原生支持文件嵌套,需配置 explorer.fileNesting.patterns,如 "*.component.ts": ["*.component.html", "*.component.css"],且要求父子文件同目录、命名严格匹配、explorer.fileNesting.enabled 为 true。 VSCode 怎么启用文件嵌套(file nesting)功能 VSCode 1.86+ 原生支持文件嵌套,不需要插件。关键不是“设置”,而是正确配置
explorer.fileNesting.patterns
这个设置项——它控制哪些文件该被谁折叠进去。 常见错误是直接搜“嵌套”或“折叠”,结果装了过时插件(比如
File Nesting
),反而和原生功能冲突,导致嵌套不生效或行为异常。 打开设置(
Ctrl+,
或
Cmd+,
),搜
fileNesting.patterns
点击「在 settings.json 中编辑」,添加类似这样的规则:
"explorer.fileNesting.patterns": { "*.component.ts": ["*.component.html", "*.component.css", "*.component.spec.ts"], "*.service.ts": ["*.service.spec.ts"], "*.module.ts": ["*.module.spec.ts"] }
注意:键(key)是“父文件”模式,值(value)是“子文件”列表;路径通配符只支持
*
和
**
,不支持正则。 为什么改了 patterns 还不嵌套?检查这三点 最常卡在这几个地方,不是配置写错,而是环境或逻辑没对上。
explorer.fileNesting.enabled
必须为
true
(默认开启,但可能被其他配置覆盖) 文件必须在同一目录下——VSCode 不跨文件夹嵌套,
src/app/a.component.ts
和
src/app/a.component.html
可以,但
src/app/a.component.ts
和
src/assets/a.component.html
不行 文件名必须严格匹配模式:比如你写了
"*.component.ts"
,那
user.component.ts
就能匹配,但
user-component.ts
或
userComponent.ts
就不会被识别为父文件 如何让 .spec.ts 文件自动收进对应源文件下面 这是高频需求,但容易配反。核心原则:把
.spec.ts
当作“子”,源文件(如
.ts
)当“父”。 VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 错误配法:
"*.spec.ts": ["*.ts"]
—— 这会让所有
.spec.ts
去找同名
.ts
,但实际要的是反过来。 正确写法(以 Angular 组件为例):
"*.component.ts": ["*.component.spec.ts"]
通用写法(适用于普通模块):
"*.ts": ["*.spec.ts"]
,但要注意命名一致性:必须是
utils.ts
+
utils.spec.ts
,不能是
utils.ts
+
test-utils.ts
如果想同时支持多种后缀(如
.test.ts
),得单独加一条:
"*.ts": ["*.spec.ts", "*.test.ts"]
嵌套后文件图标/展开状态异常怎么办 VSCode 的嵌套是纯 UI 层折叠,不影响文件系统或编辑器行为,但会干扰一些依赖文件名的扩展(比如测试运行器、代码导航)。 折叠后点不开子文件?检查是否误启用了
explorer.compactFolders
(它会把单文件夹也压缩成一行,和嵌套叠加后视觉混乱) 跳转到定义(
F12
)失效?不是嵌套的问题,而是 TypeScript 语言服务没识别
.spec.ts
为关联文件——需确保
tsconfig.json
包含了 spec 文件(
"include"
字段) 嵌套层级太深(比如
a.component.ts
→
a.component.html
→
a.component.scss
)?VSCode 目前只支持一级嵌套,第二层会被忽略 真正麻烦的是多语言项目里混用不同约定(比如 React 的
Button.tsx
+
Button.module.css
+
Button.test.tsx
),这时 pattern 规则得写得非常具体,稍有偏差就漏掉一个文件——别指望它智能推断,它只认字符串匹配。

相关文章