Ctrl+Shift+[(Windows/Linux)或Cmd+Shift+[(macOS)可递归展开资源管理器中当前选中的文件夹及其所有子目录,仅作用于该文件夹,不触发兄弟节点或全局展开,过深嵌套可能引发卡顿。

VSCode 怎么一次性展开所有子文件夹(递归展开)
VSCode 默认不提供“一键全部展开”的按钮,但有快捷键能快速递归展开当前目录下所有层级的子文件夹。关键不是找按钮,而是用对快捷键组合,并理解它的作用范围。
在资源管理器(侧边栏)中,确保光标聚焦在某个文件夹上(比如 src),然后按:Ctrl + Shift + [(Windows/Linux)或 Cmd + Shift + [(macOS)
这个操作会**从当前选中文件夹开始,向下递归展开所有子文件夹**,但不会展开兄弟节点或其他根级文件夹。
- 只对「当前选中的文件夹」生效,不是整个工作区
- 如果选中的是文件,快捷键无效;必须选中文件夹(点击文件夹名或图标)
- 展开深度无硬限制,但过深嵌套可能卡顿(比如 node_modules)
- 没有对应“全部折叠”快捷键,只能手动点箭头或用
Ctrl + Shift + ]折叠当前展开项
为什么右键菜单里没有“全部展开”选项
VSCode 的资源管理器右键菜单精简了高频操作,而“递归展开”属于中低频、易误触的动作——一旦展开 node_modules 或 dist 这类大目录,UI 会明显变卡,甚至拖慢编辑器响应。所以它被藏在快捷键里,而非右键暴露。
你可能会看到第三方扩展(如 Expand Folder)提供右键菜单项,但官方不内置,正是出于性能和稳定性的权衡。
- VSCode 1.85+ 版本仍维持该设计逻辑
- 扩展添加的“全部展开”通常也只是模拟多次触发
Ctrl + Shift + [,并非底层优化 - 若发现快捷键失效,请检查是否被输入法、全局快捷键或键盘布局拦截(比如某些机械键盘的宏键)
想让新打开的 VSCode 自动展开特定文件夹怎么办
VSCode 不支持“启动时自动递归展开”,但可以通过配置 files.exclude 和 search.exclude 配合手动预展开来间接实现更清爽的视图。
例如,在工作区 .vscode/settings.json 中排除干扰项:
{
"files.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/.git": true
}
}
这样实际需要关注的子目录变少,再配合快捷键展开就更可控。
- 仅排除显示,不影响文件读写或搜索(除非同时配
search.exclude) - 路径通配符用
**/表示任意层级,*只匹配单层 - 不要滥用
**/package-lock.json这类精确文件排除,容易漏掉调试所需内容
展开后卡顿或侧边栏变慢怎么缓解
这不是 bug,是真实性能反馈:VSCode 渲染每个文件夹节点都需要 DOM 节点和事件绑定,成百上千个子文件夹会显著拖慢资源管理器响应速度。
优先尝试以下轻量干预方式:
- 确认没意外展开
node_modules—— 检查顶部路径栏当前焦点位置 - 用
Ctrl + P(快速打开)直接跳转文件,比靠展开找更快 - 临时关闭“文件图标主题”:设置里搜
workbench.iconTheme,设为null - 禁用非必要扩展,尤其是那些监听文件系统变化的(如某些 ESLint 或 Git 扩展)
真正的大项目,别执着于“全展开”,把 files.exclude 配好,比强行展开更有实际效率。


















