关闭workbench.editor.enablePreview设为false是唯一必须操作,可使单击文件立即变为常驻、正体、带未保存标识的标签页;该设置默认为true,导致单击仅临时预览并被后续操作覆盖,改后无需重启,已开斜体标签自动转正。

关掉 workbench.editor.enablePreview 是唯一必须做的操作,设为 false 后单击文件立刻变成常驻标签页,斜体消失,未保存内容不再被覆盖。
为什么单击文件总“闪一下就没了”
这不是卡顿或插件冲突,是 VSCode 默认启用的预览模式在起作用:单击资源管理器文件时,它只是临时占一个可被覆盖的标签页,用斜体标识,右上角还带小箭头图标。这个行为由 workbench.editor.enablePreview 控制,且默认值就是 true。
- 双击文件不受该设置影响——它永远常驻,不会出现斜体
- 改完设置无需重启,已打开的斜体标签会自动转为正体、可拖拽、带未保存标识(圆点)的常驻页
- 如果右下角显示「Workspace Settings」,说明你只改了当前项目配置,用户级设置仍是
true,得同步修改 - 手动编辑
settings.json更可靠:"workbench.editor.enablePreview": false,加在{}内任意位置即可
为什么关了还出现斜体标签
即使 workbench.editor.enablePreview 是 false,某些操作仍会绕过主开关,走独立预览路径:
-
Ctrl+Click(Windows/Linux)或Cmd+Click(macOS)跳转定义:需额外设"workbench.editor.enablePreviewFromCodeNavigation": false - 命令面板(
Ctrl+P)输入文件名后回车:必须设"workbench.editor.enablePreviewFromQuickOpen": false - 搜索结果中双击匹配行:受
search.editor.doubleClickBehaviour控制,设为"open"才避免预览(默认是"gotoLocation") - GitLens、Todo Tree 等扩展点击跳转:它们调用的是 VSCode 预览 API,得查对应扩展文档是否有
enablePreview类开关
双击文件还是被覆盖?检查 workbench.editor.reuseEditors
很多人以为关了预览就万事大吉,结果双击同名文件(比如两次双击 index.ts)仍会替换当前标签页——这是 workbench.editor.reuseEditors 在起作用,它默认为 true,控制“是否复用当前编辑器组中的空闲标签位”,和预览无关。
- 必须同时设为
false:"workbench.editor.reuseEditors": false - 该设置对所有打开方式生效:双击、
Ctrl+P回车、拖入文件、终端中code file.ts命令等 - 设为
false后,即使你手动关闭某个标签,再打开同名文件也不会自动复用——必须显式右键 → “Reopen Closed Editor” - 注意干扰项:
workbench.editor.limit.enabled若为true且限制为 1,也会造成“看起来被覆盖”的假象
真正容易被忽略的细节
预览页没有未保存标识(没圆点),改了几行代码却没注意它还是预览状态,切走再回来,改动可能直接被新文件覆盖;已转为常驻的标签页若没手动保存,重载窗口后内容会丢失;Alt+Click 或拖拽文件到另一个 editor group 生成的斜体标签,不属于预览配置能控制的范围,是 editorGroup 的默认策略,只能靠操作习惯规避——不用 Alt+Click,不拖拽,全部用双击或 Enter 确认。











