VSCode不自动保存分屏结构和面板状态,因默认未启用布局快照机制;需设workbench.editor.restoreViewState为true、禁用closeEmptyGroups,并以文件夹方式打开工作区,退出后重开方可大致还原。

VSCode 本身不自动保存你手动拖出来的分屏结构和面板显隐状态,必须靠工作区配置 + 正确操作习惯才能稳定还原。
为什么关掉再打开,分屏就没了
VSCode 默认只缓存“最近打开的文件”和“编辑器组数量”,但不会记住每个组里放了什么文件、分栏方向(垂直/水平)、侧边栏宽度、终端是否展开等。这些属于“布局状态”,需显式启用恢复逻辑:
-
workbench.editor.restoreViewState必须设为true(默认是false)—— 它控制是否恢复每个编辑器的滚动位置、光标、折叠状态,也影响分屏内文件的绑定关系 -
workbench.editor.closeEmptyGroups建议设为false,否则空的分栏组会被自动删掉,导致你精心排好的 3 栏变回 1 栏 - 仅对“文件夹级工作区”生效:必须用
File > Open Folder打开项目,不能双击单个.js文件启动 —— 否则.vscode/workspaceStorage/不写入布局快照
怎样让侧边栏宽度、终端显隐、分屏结构下次还在
这不是靠设置开关一劳永逸的事,而是依赖 VSCode 在关闭前对当前工作区做一次“快照”。关键动作链如下:
- 先调好所有东西:拖好侧边栏宽度、打开 Terminal/Outline/Problems 面板、用
Ctrl+\拆出需要的分栏、把文件拖到对应组 - 确保所有编辑器组都有至少一个文件(避免被
closeEmptyGroups清掉) - 退出 VSCode(不是仅关闭窗口,要彻底退出进程)
- 重新用
File > Open Folder打开同一文件夹 —— 此时侧边栏宽度、面板显隐、分栏结构大概率还原(受 DPI 和字体缩放影响,宽度可能 ±5px)
files.autoSave 设置会影响布局保存吗
不影响。但容易混淆:有人以为“切走就保存”能帮布局稳定,其实 files.autoSave 只管文件内容落盘,和界面结构无关。不过它间接相关:
- 设为
onFocusChange能防止你切到终端写命令时忘了保存,导致重启后文件恢复成旧版本,看起来像“布局错乱”(其实是文件没更新) - 若用
afterDelay,延迟期间切走又快速切回,可能触发两次保存,造成 Git 脏提交;建议设为3000–5000ms - 该设置可被语言特定配置覆盖,比如在
.vscode/settings.json里加"[javascript]": { "files.autoSave": "off" },注意优先级
多根工作区下布局保存特别容易失效
多根工作区(multi-root workspace)的布局缓存机制更脆弱,尤其是侧边栏中不同根目录的资源管理器会互相干扰:
- 不要混用“Open Folder”和“Add Folder to Workspace”——前者生成独立
workspaceStorage,后者共用一个,易冲突 - 如果发现某根目录的 Explorer 总是重置,检查
.code-workspace文件里有没有重复的folders条目或路径大小写不一致(Windows 上敏感) - 右键侧边栏顶部的根名 →
Close Workspace,再重新Add Folder,比直接重启更可靠
真正难的是像素级宽度和多面板堆叠顺序——VSCode 从不记录它们,每次都是“大致还原”。如果你依赖固定宽度做阅读节奏,或者靠 Terminal 和 Output 并排对比输出,就得接受每次启动后手动微调一次边缘。











