tabsextra 可固定标签页使其不被 ctrl+w 或“关闭所有标签”关闭,需安装后重启;固定标签不保证会话持久,需配合项目保存或启用 restore_session_settings。

怎么用 TabsExtra 固定标签页不被关闭
sublime Text 默认不支持“固定标签”(类似浏览器中右键“固定标签页”的功能),但 TabsExtra 插件能真正实现它——不是隐藏、不是禁用,而是让标签页在关闭所有标签或使用 Ctrl+W 时跳过它。
- 用
Ctrl+Shift+P打开命令面板,输入Package Control: Install Package,再搜TabsExtra安装 - 安装后重启 Sublime(必须重启,否则右键菜单不出现)
- 右键任意标签页 → 选择
Sticky Tab,该标签左上角会出现小图钉图标,表示已固定 - 此时按
Ctrl+W关闭当前标签,或执行File → Close All Tabs,固定标签不会被关掉
注意:Sticky Tab 是视图级状态,复制标签页(Ctrl+Shift+T)或拖拽重开,新标签默认不继承固定属性,需手动再设一次。
为什么“防止意外关闭”不能只靠固定标签
固定标签解决的是“主动关闭”,但用户真正怕的往往是“误操作导致标签消失”:比如拖文件到编辑区替换内容、热退出崩溃丢失未保存标签、或者双击侧边栏文件覆盖当前页。这些行为和“关闭”无关,却一样会丢掉你正在看的文件。
-
enable_drag_drop": false必须加进用户设置,否则拖一个日志文件进来,当前调试中的 Python 脚本就没了 -
hot_exit": false和remember_open_files": true要配对启用,否则崩溃后连标签页列表都恢复不了 - 固定标签页 ≠ 文件只读,它不阻止编辑、不防保存覆盖,只是“关不掉”——别把它当安全锁用
常见错误现象:Ctrl+W 没反应?可能是插件冲突或没重启;固定后仍被关掉?检查是否在分屏中误点了其他组的关闭命令。
怎么让重要文件“既打不开又关不掉”——双重锁定策略
真正需要保护的文件(如 /etc/hosts、部署模板、线上配置副本),光固定标签不够,得从系统层 + 视图层同时设防。
- 先用系统命令设只读:
chmod 444 /path/to/file(macos/linux)或 windows 右键 → 属性 → 勾选“只读” - 再在 Sublime 中打开该文件,按
Ctrl+`调出控制台,输入view.set_read_only(True) - 此时文件不可编辑、不可保存(即使 Ctrl+S 也会弹确认框)、标题栏显示
[readonly],且标签页还能用TabsExtra固定住
关键点:系统只读是硬限制,view.set_read_only(True) 是软提示,两者叠加才能避免“文件明明只读,但我手快按了 Ctrl+S 导致弹窗后误点覆盖”这类真实发生过的事故。
容易被忽略的细节:固定标签不等于会话持久
很多人以为固定了标签,下次启动就还在——其实不是。Sublime 的会话恢复(auto Save Session.sublime_session)记录的是“打开哪些文件”,不是“哪些标签被固定过”。所以即使你上次固定了 nginx.conf 标签,只要没手动保存会话,重启后它只是普通打开,不再固定。
- 想长期生效,每次固定后记得手动触发一次
File → Save Project As…,把当前状态存为项目 - 或者在用户设置里加
"restore_session_settings": true,配合正常退出(别强杀进程) - 更稳妥的做法:把高频查看的只读文件加入
ReadOnlyPaths插件规则,让它自动set_read_only+ 配合 TabsExtra 固定,一劳永逸
最常漏掉的一环:改完设置没重启 Sublime,尤其改主题、装 TabsExtra、调用 view.set_read_only 后——它不热加载,必须彻底退出再打开才认。