关掉"workbench.editor.enablePreview": false是唯一全局解法,可使单击生成带圆点、常驻正体标签,已开斜体页自动转正;但Ctrl+Click、Ctrl+P、搜索双击等需额外关闭对应enablePreviewFromXXX开关。

关掉 workbench.editor.enablePreview 是唯一能阻止斜体预览标签自动被覆盖的解法。它不是“辅助选项”,而是全局开关——设为 false 后,单击资源管理器文件会直接生成带圆点、可拖拽、常驻的正体标签页,已打开的斜体页也会立刻转正(但内容不会自动保存)。
为什么改了设置还看到斜体标签?这些操作绕过主开关
即使 workbench.editor.enablePreview 是 false,以下行为仍强制走预览逻辑,因为它们调用的是独立 API 路径:
-
Ctrl + Click(Windows/Linux)或Cmd + Click(macOS)在资源管理器里点文件:VSCode 硬编码逻辑,无法通过配置禁用 - 命令面板(
Ctrl + P)输入文件名后回车:必须额外设"workbench.editor.enablePreviewFromQuickOpen": false - 搜索结果(
Ctrl + Shift + F)中双击匹配行:受search.editor.doubleClickBehaviour控制,要设为"open"(不是默认的"gotoLocation") - 代码内
Ctrl + Click跳转定义:需设"workbench.editor.enablePreviewFromCodeNavigation": false - GitLens blame 行、Todo Tree 点击任务等扩展跳转:得查对应扩展文档,看是否有
enablePreview类开关
只关预览还不够:防双击/命令打开时覆盖的隐藏开关
很多人关了 workbench.editor.enablePreview 后,双击文件 A → 再双击文件 B,A 仍被替换成 B。问题出在 workbench.editor.reuseEditors 默认为 true,它控制“是否复用当前编辑器组中的空闲标签位”,和预览无关。
必须同步设置:
"workbench.editor.enablePreview": false"workbench.editor.reuseEditors": false-
"workbench.editor.limit.enabled": false(避免标签数限制强行挤掉新页)
否则任一为 true,都可能触发覆盖:前者影响单击,后者影响双击、Ctrl + P、code file.ts 命令等所有主动打开方式。
固定标签页(Keep Open)的真实作用和坑点
Keep Open 不是“锁定”,只是让标签脱离预览生命周期。它能防的行为有限:
- 被后续单击/双击其他文件覆盖(前提是上面两个
false已生效) - 被右键 →
Close All Other Editors清掉 - 被空闲自动回收(比如长时间没操作)
但它**完全不防**以下操作:
-
Ctrl + W(焦点在该标签时必定关闭) - 鼠标中键点击标签页(VSCode 默认绑定为强制关闭)
- 双击标签页空白处(UI 层直接触发关闭,绕过固定状态)
- 重启 VSCode(所有固定状态丢失,这是设计如此,无配置可绕过)
真正容易被忽略的是:已存在的斜体预览标签不会因改配置自动变正体,必须手动右键 → Keep Open 或双击一次标签标题;而 Alt + Click 拖入侧边、拖拽到另一个 editor group 的行为,属于 editorGroup 策略,无法通过任何预览设置禁用——只能改操作习惯。


















