必须将 workbench.editor.enablePreview 设为 false,这是 VSCode 预览行为的总开关;设为 false 后所有单点触发(如 Ctrl+P、跳转定义)均生成常驻标签,斜体页自动转正体并支持保存提示,而仅关闭子选项如 enablePreviewFromExplorer 无效。

必须设 workbench.editor.enablePreview 为 false,否则所有其他操作都是临时补救,且大概率失效。
为什么只关资源管理器预览还不够
很多人搜到 workbench.editor.enablePreviewFromExplorer 就以为够了,结果 Ctrl+P 打开、搜索双击、跳转定义还是斜体标签——因为 VSCode 把预览控制拆成了多个独立开关,而 workbench.editor.enablePreview 是总闸。它默认为 true,只要它是 true,其他细粒度设置(比如 enablePreviewFromQuickOpen)才起作用;一旦你把它设为 false,几乎所有单点触发行为都会变成常驻标签(除极少数硬编码路径)。
常见错误现象:
- 改了
enablePreviewFromExplorer,但 Ctrl+P 回车后仍是斜体 - 右下角显示「Workspace Settings」,用户级设置仍是
true,工作区设置被覆盖 - 已打开的斜体标签没变正体——其实它们会自动转,但不会自动保存内容,Ctrl+S 前切走可能丢修改
怎么改才真正永久生效
图形界面容易漏改层级,推荐直接编辑 settings.json,确保用户级和工作区级都一致:
- 按
Ctrl + Shift + P(Windows/Linux)或Cmd + Shift + P(macOS),输入Preferences: Open Settings (JSON) - 在
{}内添加:"workbench.editor.enablePreview": false - 如果同时用多根工作区,再打开每个子文件夹的
.vscode/settings.json,也加同一行 - 保存后立即生效,不用重启;已存在的斜体标签页会自动转为正体、可拖拽、带未保存圆点的常驻状态
还有哪些地方会绕过这个总开关
即使 workbench.editor.enablePreview 是 false,以下行为仍可能产生斜体标签,因为它们调用的是底层预览 API,不走主开关逻辑:
-
Ctrl + Click(Windows/Linux)或Cmd + Click(macOS)在资源管理器里单击文件:VSCode 硬编码强制预览,无法通过配置禁用 - 搜索面板(
Ctrl + Shift + F)中双击匹配行:需单独设"search.editor.doubleClickBehaviour": "open"(不是默认的gotoLocation) - GitLens blame 行、Todo Tree 点击任务:这些扩展自己调用
vscode.window.showTextDocument(..., { preview: true }),得查对应扩展文档看是否有enablePreview类配置项 - Alt+Click 或拖拽文件到另一个 editor group:这是编辑器组策略,非 bug,也无法通过预览设置关闭;首次保存或右键 → “Keep Open” 后才转常驻
关掉预览后 Ctrl+K+W 才真能关干净
很多人抱怨 Ctrl + K + W 关不掉所有标签,核心原因就是预览态标签默认不被该快捷键关闭。只有当 workbench.editor.enablePreview 为 false 时,所有新打开的标签才是常驻态,Ctrl + K + W 才能一次性清空当前窗口全部标签页(含未保存的)。
额外提醒:
- 预览页没有未保存标识(无圆点),容易误以为“没改东西”,实际改了也不会提示保存就消失
- 调试器跳转源码、终端点击路径、某些扩展的 inline diff 都可能悄悄开预览页,关总开关是最省心的兜底方案
- 双击文件永远常驻,不受任何预览设置影响——这是唯一稳定可靠的打开方式,但不适合高频切换场景











