vscode 默认不支持双击文件夹在当前窗口打开,因该行为由系统外壳控制,vs code 无对应事件监听;需用 ctrl+k ctrl+o 或 code . --reuse-window 实现复用窗口。

VSCode 默认不支持双击文件夹在当前窗口打开——这是个常见误解,实际行为由系统外壳(Explorer/Finder)控制,VS Code 本身没有监听“双击文件夹”这个动作的入口。
双击文件夹时 VS Code 根本没收到事件
Windows 资源管理器或 macOS Finder 双击一个文件夹,会调用该文件夹的默认打开程序。如果你把 VS Code 设为文件夹的默认打开应用(比如通过注册表或右键菜单),系统会执行类似 code "D:\my-project" 的命令——这**总是启动新窗口**(除非已有窗口且监听了该路径)。VS Code 不提供“双击 → 当前窗口复用”的配置项,因为底层没有暴露这个交互链路。
- 注册表里设的
"%V"或"%1"是传给Code.exe的启动参数,不是 VS Code 内部事件 - 即使已有一个 VS Code 窗口开着,
code "path"默认也不会复用它;需要加--reuse-window参数才可能复用 - 拖拽文件夹进 VS Code 窗口看似“在当前窗口打开”,但本质是触发了临时工作区加载,Git、扩展配置常失效,不推荐
真正可控的:用快捷键或命令强制复用当前窗口
想让文件夹在当前窗口打开,得绕过双击,改用明确指令:
- 在已打开的 VS Code 中按
Ctrl+K Ctrl+O(Windows/Linux)或Cmd+K Cmd+O(macOS),弹出「Open Folder」对话框,选中文件夹后自动在当前窗口替换工作区 - 终端里进到目标目录,运行
code . --reuse-window——注意必须带--reuse-window,否则仍开新窗 - 如果常用某几个项目,直接在命令面板(
Ctrl+Shift+P)运行Workspaces: Open Workspace,选已保存的.code-workspace文件,它天然复用当前窗口
workbench.list.openMode 和 expandMode 完全不相关
搜到的 workbench.list.openMode 控制的是资源管理器里**点击/双击文件**的行为(比如双击 index.ts 是预览还是常驻打开),和「打开文件夹」完全无关。expandMode 仅影响侧边栏树状结构的折叠展开方式(单击/双击展开子目录),对文件夹加载无任何作用。
- 设置
workbench.list.openMode为doubleClick后,双击文件才真正打开(而非预览),但双击文件夹依然无效 - 修改
expandMode不会影响任何文件夹打开逻辑,只是改变你点箭头展开子目录的手感 - 这两个设置被误传为“解决双击打开文件夹”的方案,源于混淆了「文件」和「文件夹」两个层级的操作对象
最稳的方式仍是手动走 File → Open Folder,或者用 Ctrl+K Ctrl+O。所谓“双击文件夹打开当前窗口”,本质上是个系统级行为,VS Code 没留钩子给你插手——别在设置里浪费时间找不存在的开关。











