双击不能固定标签页,仅使文件脱离预览态变为常驻标签;真正固定需手动触发Keep Open。固定状态不持久、不防关闭、不跨会话,且受编辑器限制、定位策略及插件干扰。

双击本身不能固定标签页,但能绕过预览直接打开常驻标签
VSCode 没有“双击即固定”的内置行为。你看到的“双击后不被覆盖”,其实是双击触发了 workbench.editor.reuseEditors 的复用逻辑失效 + 预览模式自动转正的组合效果。默认情况下,双击一个文件会强制把它变成常驻标签(非斜体、带关闭 ×),但这不是“固定”(Keep Open),只是脱离了预览态。
常见错误现象:双击后仍被覆盖 → 大概率是 workbench.editor.reuseEditors 为 true,且你双击的是**已打开的同路径文件**(比如两次双击 index.ts)。
- 双击只对「首次打开」或「URI 不同的同名文件」(如
src/index.ts和test/index.ts)稳定新开标签 - 双击已打开的文件,若
reuseEditors: true,会强制跳转到已有标签,视觉上像“覆盖” - 想让双击任何文件都新开常驻标签,必须同时设
"workbench.editor.enablePreview": false和"workbench.editor.reuseEditors": false
真正固定标签页只能手动触发 Keep Open
“固定”在 VSCode 里特指 Keep Open(部分版本叫 Pin Tab),它让标签页脱离预览生命周期,不被新文件覆盖,也不受 Close All Other Editors 影响——但它不防关闭操作。
容易踩的坑:
- 图钉图标没出现?可能是主题缩放太小,试试
Ctrl +放大界面再找标签左侧小圆点 - 右键菜单没看到
Keep Open?确认当前标签不是预览态(右上角无 ×、文件名斜体),预览标签需先双击或按Ctrl+K Enter转正再固定 - 固定后仍被关?
Ctrl+W、鼠标中键点击标签、双击标签空白处、关闭整个编辑器组,都会关闭它——固定 ≠ 上锁
为什么改了设置还是被覆盖?重点查这三项
即使关了预览和复用,仍出现覆盖,大概率是其他配置在“抢答”。必须逐项检查:
-
workbench.editor.limit.enabled为true且workbench.editor.limit.value是1→ 强制每组只留 1 个标签,固定无效 -
workbench.editor.openPositioning设为"active"→ 新文件强行挤进当前激活标签,应改为"right"或"first" - 插件干扰:某些文件管理类插件(如
Project Manager、Auto Close Tag)会劫持双击事件,可禁用后验证
固定不持久,重启就丢——这是设计,不是 bug
VSCode 的 Keep Open 状态完全存在内存里,不写入配置、不保存到工作区、不跨会话。每次重启后,所有图钉图标消失,标签恢复初始状态。
如果你依赖某个文件长期“在场”,别只靠固定:
- 配合
workbench.editor.enablePreview: false,让所有新文件默认常驻,减少手动固定频次 - 把关键文件拖到单独编辑器组(
Ctrl+\拆分),再对该组使用Ctrl+Click标签页右侧空白区“固定组焦点”(仅限当前组生效) - 真正需要持久化?考虑用多窗口:关键文件开一个独立 VSCode 窗口,不受主窗口操作影响
最易被忽略的一点:固定标签页的窄化显示会让文件名缩略,如果没注意图钉图标,可能误以为没固定成功——请盯着标签左侧看,不是中间。


















