vscode单击文件覆盖上一个标签是因启用预览模式(workbench.editor.enablepreview),该模式下文件以斜体无保存标识的临时标签打开,下次点击即被替换;禁用该设置或通过workbench.editorassociations按类型精细化控制可解决。

为什么单击文件就覆盖上一个标签?
VSCode 默认启用预览模式(workbench.editor.enablePreview),单击资源管理器里的文件时,它不会新开标签页,而是复用当前“预览标签”——这个标签名是斜体、没保存标识(无圆点)、且下次单击别的文件就会被顶掉。这不是 bug,是设计行为,但对多数开发者来说反直觉。
禁用全局预览模式最直接
改一个配置就能让所有文件默认固定打开:
- 按 Ctrl + ,(Windows/Linux)或 Cmd + ,(macOS)打开设置
- 搜索
workbench.editor.enablePreview - 取消勾选,或在
settings.json中设为false
改完后,单击文件就生成普通标签页,带保存状态、不斜体、不会被下一次点击覆盖。注意:该设置影响所有文件类型,包括 .js、.py、.md 等。
想保留 .md 预览但禁用其他文件预览?
VSCode 支持按文件类型精细化控制,靠 workbench.editorAssociations:
- 在
settings.json中添加数组项,顺序很重要:前面的规则优先匹配 - 例如,让
.md仍走预览视图,其余文本文件禁用预览:
{
"workbench.editorAssociations": [
{ "viewType": "markdown.preview", "filenamePattern": "*.md" },
{ "viewType": "default", "filenamePattern": "*", "enablePreview": false }
]
}
⚠️ 注意:viewType: "markdown.preview" 不会自动打开右侧预览窗;如需打开即渲染,还得配 markdown.preview.openonstartup。
预览标签容易被忽略的危险点
预览标签没有未保存标识(没圆点),编辑几行代码后切走,再点别的文件——刚才的修改就丢了,因为预览页被覆盖了,连提示都没有。这不是误操作,是机制本身不提醒你正在编辑的是临时态。
所以哪怕你只偶尔双击固定、或用 Ctrl + K Enter 手动“钉住”当前文件,也比长期依赖预览模式更安全。真正需要预览的场景(比如快速扫一眼日志、配置片段),才值得主动开启它。











