vscode中固定标签页需手动右键选择“keep open”或点击标签左侧图钉图标,固定后标签变窄、左侧显示图钉、不被新文件覆盖,但重启丢失且ctrl+w等操作仍可关闭。

VSCode 里没有“自动固定”或“永久锁定”标签页的功能,所有固定操作都是手动触发、内存态、不持久的——重启即丢,关掉就清零。
怎么真正固定一个标签页(不是预览态)
固定本质是让文件脱离预览模式(preview),变成常驻标签。VSCode 不提供一键全局开关,必须对每个标签单独操作:
- 右键点击任意已打开的标签页 → 选择
Keep Open(部分版本显示为Pin Tab或Keep Editor) - 或单击标签页最左侧的小圆点 / 图钉图标(如果没看到,可能是主题缩放太小,试试
Ctrl +放大界面) - 固定后,标签变窄、文件名缩略,左侧出现图钉图标,且不会被后续点击其他文件覆盖
- 注意:
Keep Open不等于“防关闭”——Ctrl+W、点击 ×、鼠标中键、双击空白处仍会关闭它
为什么刚固定完,点别的文件还是被替换了
大概率你没关掉预览模式,或者打开了编辑器组限制。固定只对“已存在标签”生效,新打开的文件默认仍是预览态:
- 在
settings.json中设"workbench.editor.enablePreview": false,让所有新文件都直接开成常驻标签 - 检查是否误启了
"workbench.editor.limit.enabled": true且"workbench.editor.limit.value": 1—— 这会让编辑器组强制只留 1 个标签,固定也无效 -
"workbench.editor.openPositioning": "right"确保新标签插在右侧,而不是覆盖当前 - 已存在的预览标签不会因改配置自动转正,得手动
Keep Open一次
固定后还能被哪些操作意外关掉
固定只是改变生命周期策略,不是加锁。以下行为仍会关闭已固定的标签:
-
Ctrl+W(关闭当前焦点编辑器,固定不豁免) - 鼠标中键点击标签页(VSCode 默认绑定为强制关闭)
- 双击标签页空白处(UI 层关闭逻辑,绕过固定状态)
- 右键菜单里的
Close All Other Editors或Close Saved Editors - 整个编辑器组被关闭(比如用
Ctrl+K F关闭全部)
想减少误关,可禁用中键关闭:"workbench.editor.mouseBackForwardToNavigate": false,但这也会关掉鼠标侧键导航。
终端标签页能固定吗
不能像普通文件那样“固定”,但可通过配置让终端会话不随标签关闭而销毁:
- 启用
"terminal.integrated.persistentSession": true(需 VSCode 1.86+,改完必须重启) - 给终端命名(右键 →
Rename),再配合"terminal.integrated.reuseTerminal": true,同名终端会复用而非新建 - 注意:进程崩了(如
npm run dev报错退出)、exit、Ctrl+D仍会导致标签消失,这不是配置能拦住的
真正容易被忽略的点是:固定只作用于当前窗口内存,不跨工作区、不同步远程、不写入配置——你以为钉住了,其实只是这会儿没被挤掉而已。











