Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)可一次性递归展开资源管理器中已选中的文件夹及其所有子目录,无深度限制但可能引发明显卡顿;右键空白处选“Close All Folders”可一键收起全部展开项。

怎么用快捷键一次性展开资源管理器里的整个文件夹树
VSCode 默认不提供「展开当前文件夹及其所有子目录」的单键快捷方式,但有稳定可靠的替代方案:Ctrl+Click(Windows/Linux)或 Cmd+Click(macOS)在文件夹上点击即可递归展开全部子项。
这个操作不是悬停或右键菜单里的功能,必须是明确的「按住修饰键 + 左键单击」。它只对当前选中的文件夹生效,不会影响其他已折叠节点。
- 只对「已选中」的文件夹起作用 —— 如果没点中目标文件夹就按
Ctrl+Click,什么都不会发生 - 展开深度无限制,哪怕嵌套 10 层也会全开,但会明显卡顿(尤其在含大量文件的项目里)
- 不支持键盘触发(比如
Shift+→只能一层层展开),必须用鼠标配合修饰键
为什么 Alt+Click 或 Shift+Click 不行
Alt+Click 在 VSCode 资源管理器里实际是「关闭所有打开的编辑器标签页」的全局快捷键,和文件夹展开完全无关;Shift+Click 则用于多选文件,同样不触发展开逻辑。
常见误操作是记混了浏览器行为(比如 Chrome 里 Shift+Click 展开目录),但在 VSCode 中这类组合键被重新映射了用途。唯一有效的就是 Ctrl/Cmd+Click 这一组。
- VSCode 的快捷键绑定表里没有为「递归展开」单独设命令,它是底层 UI 组件的硬编码交互逻辑
- 试图在
keybindings.json里绑定workbench.files.action.expandAll无效 —— 这个命令根本不存在 - 插件也无法接管该行为,因为这不是可扩展的命令,而是 DOM 级别的事件响应
展开后太乱?怎么快速收回去
没有对应的「一键全部折叠」快捷键。最省事的做法是:右键点击任意空白处 → 选择 Close All Folders,这样会把资源管理器里所有已展开的文件夹全部收起。
注意这个操作不是「撤销上一次展开」,而是清空整个展开状态。如果你只想收起某个特定分支,只能手动逐级点击三角图标,或者用键盘导航:→ 展开一层,← 收起一层。
-
Close All Folders是右键菜单项,不在命令面板(Ctrl+Shift+P)里直接暴露 - 如果资源管理器里开着搜索、未保存文件等非文件夹节点,它们不受影响
- 收起后再次
Ctrl+Click同一文件夹,仍会重新递归展开 —— 状态不持久
大项目里慎用递归展开的真实原因
不是功能不可用,而是 VSCode 渲染性能会直接受冲击。当一个文件夹下有几百个子目录时,Ctrl+Click 后界面可能卡顿 2–5 秒,期间无法点击、滚动甚至呼出命令面板。
这是因为 VSCode 会同步读取每一层的 children 并生成 DOM 节点,而文件系统调用本身就有延迟。尤其在 WSL 或网络盘路径下更明显。
- 遇到卡顿时不要连点,重复触发只会加重队列压力
- 真正需要查深层结构时,建议用终端命令如
tree -L 3更快更轻量 - 如果频繁需要看某几个固定路径,可以加到「工作区设置」里的
files.exclude,减少干扰项
递归展开是个“看起来很爽、用起来要掂量”的操作——它不报错、不崩溃,但卡顿本身就是在提醒你:VSCode 的资源管理器不是文件浏览器,它优先服务编辑上下文,不是为了展示完整目录树。










