Open Editors视图是唯一可靠入口,可一次性列出所有未保存文件;启用后明确区分Untitled类内存文件、已保存但修改的文件及已同步文件,不受标签栏截断或主题影响。

Open Editors 视图是唯一可靠入口
只看顶部标签页的 ● 圆点,大概率漏掉未保存文件——尤其当标签文字被截断、深色主题下颜色对比度低、或 Untitled-1 被挤到最右侧时。真正能一次性列出所有未保存状态的,只有 Open Editors 视图。
启用方法:点击资源管理器右上角 ⋯ → 勾选 Open Editors。启用后顶部会出现一栏列表,明确区分三类:
-
Untitled-1、Untitled-2:纯内存文件,无磁盘路径,Reveal in Explorer必然无效 -
src/index.ts ★或README.md (unsaved):已保存过但有修改,可定位到真实路径 - 仅显示文件名、无任何标记:内容与磁盘一致(但注意外部修改未被 VS Code 检测时可能误判)
Compare with Saved 灰显?说明文件根本没落盘
按 Ctrl+Shift+D 打开源代码管理视图,找到文件右侧的 ⋯ → Compare with Saved 若灰显不可点,不是功能坏了,而是该文件从未保存过(即标题栏显示 Untitled-1)。此时它没有磁盘版本,自然无法比对。
正确做法:
- 先手动执行
File: Save As给它一个路径,哪怕临时存到桌面 - 保存后,
Compare with Saved立即可用,且 diff 左侧就是刚写入的磁盘内容 - 若想跳过保存直接比对,可右键选择
Compare with Clipboard(前提是已复制过旧内容)
Ctrl+K S 不会处理 Untitled 文件
Ctrl+K S(Windows/Linux)触发的是 workbench.action.files.saveAll,但它只对“已命名且有改动”的文件生效。所有 Untitled-* 条目会被静默跳过——不报错、不弹窗、也不提醒。
批量保存前务必确认:
- 打开
Open Editors列表,逐条检查有没有Untitled-开头的项 - 有,则必须单独对它们执行
File: Save As,否则这些内容永远不会落盘 - 若启用了
files.autoSave: afterDelay,需切出编辑器(比如点终端或命令面板)才能触发延迟保存;一直聚焦在编辑器里,它不会动
崩溃后还能找回未保存内容吗?关键看两个开关
VS Code 能否恢复蓝屏或强制退出前的未保存内容,不取决于你按了多少次 Ctrl+S,而只依赖底层配置:
-
files.hotExit必须设为onExit或onExitAndWindowClose(默认开启,但远程开发如 SSH/WSL 下可能被覆盖) -
files.restoreWindows决定重启后是否还原窗口布局和打开的标签页(含未保存状态) - 恢复入口是
File: Recover Unsaved Changes(Ctrl+Shift+P输入调用),但它只对曾被 VS Code 打开过、且未关闭的Untitled文件有效
真正容易被忽略的是:Timeline 和 Git 本地历史都要求文件至少有过一次磁盘路径;纯内存中的 Untitled-1 只能靠 Recover Unsaved Changes,且它不保证永远存在——缓存可能被清理,越早操作越稳妥。


















