必须将 workbench.editor.enablePreview 设为 false,才能彻底解决单击即覆盖问题;设为 true 时单击进斜体预览标签并被后续点击替换,false 时每次单击生成常驻标签页,带未保存标识、可拖拽排序、计入 Ctrl+Tab 历史。

关掉 workbench.editor.enablePreview 就行,这是唯一有效解法。 其他操作(比如只关某个子选项、点UI按钮、双击文件)都不能真正解决单击即覆盖的问题。
为什么必须设 workbench.editor.enablePreview 为 false
VSCode 的预览行为由这个全局开关控制:设为 true(默认),单击资源管理器文件就进斜体预览标签,再次点击其他文件会直接替换它;设为 false 后,每次单击都生成常驻标签页,带未保存标识(圆点)、可拖拽、可排序、计入 Ctrl+Tab 历史栈。
常见误区:
- 只改工作区设置,但用户设置里还是
true→ 实际没生效 - 以为“双击就能绕过”→ 双击确实常驻,但你不可能总双击
- 试图用
enablePreviewFromExplorer单独关资源管理器→ 它只在workbench.editor.enablePreview为true时才起作用
workbench.editor.enablePreview 关了还出现斜体标签?检查这些地方
即使全局设为 false,某些操作仍可能触发预览,因为它们走的是独立路径:
-
Ctrl+单击跳转定义 → 需额外加"workbench.editor.enablePreviewFromCodeNavigation": false - 搜索结果中双击文件 → 受
search.editor.doubleClickBehaviour控制,设为"open"才避免预览 - 命令面板(
Ctrl+P)输入文件名回车 → 必须配"workbench.editor.enablePreviewFromQuickOpen": false - GitLens、Todo Tree 等扩展内点击 → 查该扩展文档,看是否提供
preview类配置项
别忽略预览页的“静默风险”
预览页不显示未保存标识(没圆点),你改了几行代码却没注意它仍是预览状态;一旦切换到别的文件再回来,VSCode 可能直接用新内容覆盖旧预览页——改动就丢了。
这种问题不会报错,也不留日志,只在你 Ctrl+S 时发现“咦,刚才那几行怎么没了”。所以哪怕你只偶尔遇到一次斜体标签,也得确认所有相关配置已同步关闭,尤其是多根工作区或远程开发场景下,工作区设置容易覆盖用户设置。


















