系统级只读是唯一不可绕过的防护,需在windows设属性只读、macos锁定、linux用chmod a-w;插件只读为软限制,可被代码绕过;固定标签不防内容修改,须三者叠加并关闭预览、拖放、热退出等危险功能。

文件系统级只读是最硬的防护
Sublime Text 本身不控制文件写权限,它只是尊重操作系统返回的 errno。所以真正能“锁死”文件不让保存的,只有把文件设为系统只读——这是唯一不会被插件、设置或快捷键绕过的办法。
- Windows:右键文件 → 属性 → 勾选“只读” → 点“应用”,再点“全部应用”(否则同目录下其他文件可能没生效)
- macOS:右键 → “显示简介” → 拉到底部勾选“锁定”
- Linux:
chmod a-w filename(注意不是chmod -w,少个a就只改当前用户,别人仍可写)
这样设置后,Sublime 底部状态栏会立刻显示 read only,且按 Ctrl+S 时直接弹窗报错:Unable to save <filename>: Permission denied</filename>。它甚至不会尝试覆盖——因为内核根本没给写入口。
用插件做视图层只读(软限制)
系统只读太重,不适合临时查看日志、配置副本这类“想看但不想改”的场景。这时候用 Read Only Mode 插件更灵活:它不改文件属性,只在 Sublime 内部拦截编辑和保存动作。
- 通过
Package Control安装Read Only Mode - 打开文件后,按
Ctrl+Shift+P→ 输入Read Only: Toggle切换状态 - 启用后,输入会被忽略,
Ctrl+S弹确认框,标签页标题自动加[readonly]
注意:这个模式对 Ctrl+Z、粘贴、删除等操作都有效拦截,但如果你手动执行 view.set_read_only(False)(比如在 Python 控制台里),它就失效了——它只是个标记,不是内核锁。
别只靠“固定标签”防误关
很多人以为用 TabsExtra 插件“固定标签”就能保住重要文件,其实这是个典型误解。固定标签只防 Ctrl+W 和 Close All Tabs,但拦不住拖文件进编辑区、双击侧边栏替换内容、甚至热退出崩溃丢标签。
- 固定标签 ≠ 文件只读:你照样能删光内容再
Ctrl+S覆盖原文件(如果它没设系统只读) - 固定是视图级状态:复制标签页(
Ctrl+Shift+T)后的新标签默认不固定,得重新点右键 → “Stick Tab” - 真正要保的文件(如
/etc/hosts、线上配置模板),必须系统只读 + 视图只读 + 固定标签三者叠加
否则,你刚固定好标签去切终端查个命令,回来发现内容被拖进来的 package.json 替换了——这种事真发生过。
顺手关掉几个危险开关
只读只是防线之一,有些默认开启的功能反而会放大误操作风险,建议一并关闭:
- 禁用侧边栏单击预览:
"preview_on_click": false(否则单击就打开只读预览页,再点别的文件,当前页就被无声替换了) - 禁用拖放替换:
"enable_drag_drop": false(拖文件到编辑区 = 当前内容被清空 + 新文件内容填入,毫无提示) - 禁用热退出:
"hot_exit": false(避免崩溃或强制退出时未保存内容直接消失)
这些配置全加在 Preferences → Settings 的用户设置里,加完 Ctrl+S 保存即生效。最容易被忽略的是:改完设置后,之前因预览残留的未保存标签页还在,得手动关掉,否则你会以为设置没起效。











