Sublime Text无内置只读开关,仅依赖系统级文件权限:Windows勾选属性“只读”,macOS锁定文件,Linux执行chmod a-w;设后状态栏显“read only”,Ctrl+S直接报错“Permission denied”,因内核拒绝写入。

Sublime 本身没有内置的“只读模式”开关,它完全依赖操作系统级的文件权限来判断是否可写。直接改文件属性,Sublime 就会立刻拒绝保存。
Windows/macOS/Linux 怎么设系统级只读
这不是 Sublime 的功能,而是文件系统行为——Sublime 只是忠实反映内核返回的权限状态。
- Windows:右键文件 → “属性” → 勾选“只读” → 点“应用”,再点“全部应用”(否则同目录下其他文件可能没生效)
- macOS:右键 → “显示简介” → 拉到底部勾选“锁定”
- Linux:
chmod a-w filename(注意不是chmod -w;少个a就只改当前用户权限,别人仍可写)
设置完,Sublime 底部状态栏会立刻显示 read only,按 Ctrl+S 时直接弹窗报错:Unable to save <filename>: Permission denied</filename>。它甚至不尝试覆盖——因为内核根本没给写入口。
为什么不能靠 Sublime 插件或设置实现只读
有人试过禁用快捷键、隐藏菜单、删掉保存命令,但这些都无效。原因很实在:
- Sublime 的保存逻辑走的是标准
fopen(..., "w")系统调用,失败就报错,不提供“拦截后静默丢弃”的钩子 - 插件无法绕过内核权限检查;
on_pre_save事件在写入前触发,但此时已无法阻止系统级拒绝 - 所谓“只读编辑器”本质是“只读文件系统”,不是“假装只读的 UI 层”
试图用插件模拟只读,只会制造假安全感——比如用户复制粘贴内容后误以为安全,结果一 Ctrl+S 就崩。
临时只读场景:用 subl --command 打开只读文件更可靠
如果你常要预览配置或日志,又怕手滑保存,可以用命令行强制以只读方式打开:
- Windows/macOS/Linux 都支持:
subl --command "set_read_only"(需配合插件,但稳定性差) - 更稳的做法是先用系统命令设权限,再打开:
chmod a-w config.json && subl config.json - 或者写个 shell/bat 脚本封装:自动加锁 → 打开 → 关闭后自动解锁(适合 CI 日志查看等一次性场景)
注意:set_read_only 命令不是 Sublime 内置命令,需手动注册命令类,且重启后失效——不如直接走文件权限干净。
真正防误改的关键不在 Sublime 设置里,而在你双击打开前那一步:确认文件权限是否已由系统锁定。所有“软件层只读”方案,都会在 Ctrl+S 时当场暴露缺陷。

















