设为false是唯一有效解法:关闭workbench.editor.enablePreview可使单击资源管理器文件生成带圆点的常驻标签页,避免预览页丢失未保存内容;需同步用户与工作区设置,并禁用其他预览路径如enablePreviewFromQuickOpen等。

workbench.editor.enablePreview 设为 false 是唯一有效解法
VSCode 单击资源管理器文件只闪一下、改几行没圆点、切走再回来内容没了——这不是卡顿,也不是插件冲突,就是 workbench.editor.enablePreview 在起作用。它默认为 true,所有新装 VSCode 都如此。设为 false 后,单击即生成常驻标签页(正体、带 ×、有未保存圆点),已存在的斜体预览页会自动转为常驻状态,无需重启。
必须同步检查设置层级:如果右下角显示「Workspace Settings」,说明你只改了当前项目配置,而用户级设置仍是 true,得打开 Preferences: Open Settings (JSON),在用户 settings.json 里加这一行:
"workbench.editor.enablePreview": false
图形界面操作容易漏改,手动编辑更可靠。
为什么关了还出现斜体标签?这些入口绕过主开关
即使 workbench.editor.enablePreview 是 false,以下行为仍会强制触发预览,因为它们走的是独立 API 路径:
-
Ctrl+P(或Cmd+P)输入文件名后回车 → 需额外设"workbench.editor.enablePreviewFromQuickOpen": false - 搜索结果中双击文件 → 受
search.editor.doubleClickBehaviour控制,设为"open"才避免预览 - 代码内
Ctrl+Click(或Cmd+Click)跳转定义 → 需设"workbench.editor.enablePreviewFromCodeNavigation": false - 资源管理器中
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)→ 硬编码逻辑,无法通过设置禁用;可用中键点击替代
GitLens、Todo Tree 等扩展内部调用预览 API,得查其文档是否有类似 enablePreview 的开关。
保留部分预览的精细控制:按来源或文件类型
全关太粗暴?可以用细粒度配置保留轻量预览,只对关键文件禁用:
- 按来源:设
"workbench.editor.enablePreviewFromExplorer": false(资源管理器单击不预览),但保持"workbench.editor.enablePreviewFromQuickOpen": true(Ctrl+P仍预览) - 按文件类型:用
workbench.editorAssociations,例如让.ts和.js强制常驻,.md保持预览:
"workbench.editorAssociations": [
{ "viewType": "default", "filenamePattern": "*.ts", "enablePreview": false },
{ "viewType": "default", "filenamePattern": "*.js", "enablePreview": false },
{ "viewType": "default", "filenamePattern": "*.md", "enablePreview": true }
]
注意规则顺序:数组靠前的优先匹配,files.associations 不起作用,它只管语法高亮。
预览模式最危险的副作用:没圆点 = 没保存提醒
预览标签页没有 unsaved changes 标识(无圆点),你改了几行代码却没注意它还是预览状态,切走再回来,改动可能被新文件覆盖——这是最易被忽略、也最致命的问题。
顺手加两个配套设置提升稳定性:
-
"workbench.editor.revealIfOpen": true→ 再次点击已打开的文件,直接切到对应标签页,不重复开 -
"workbench.editor.closeOnFileDelete": true→ 删除文件时自动关掉对应标签页,避免残留“幽灵预览”
真正要留意的不是怎么关预览,而是哪些操作根本绕不过它:比如 macOS 上 Cmd+Click 资源管理器文件是硬编码预览,连设置都无效;这时候中键点击或拖拽才是真稳。


















