Notepad++本身无“设为只读”功能,仅被动响应Windows文件系统只读属性;必须通过右键属性勾选“只读”或attrib +R命令设置,且需重新打开文件才能显示[READ ONLY]。

Notepad++ 本身没有“设置只读模式”的功能,它只响应 Windows 文件系统层面的只读属性;你看到的 [READ ONLY] 标签、灰色图标、禁用的 Save 菜单项,全都是对 FILE_ATTRIBUTE_READONLY 的被动反馈。
为什么点了「设为只读」没反应?
常见错误现象:[READ ONLY] 不显示、Save 按钮仍可点击、编辑后还能成功保存——根本原因就是文件在磁盘上压根没被设为只读。
- Windows 自带的记事本(Notepad)确实有「编辑 → 设为只读」菜单项,但那是它自己模拟的只读状态(仅禁用输入框),Notepad++ 没这个逻辑
- Notepad++ 所有版本(包括 7.6.6、7.9.5、8.x)都不提供软件内开关来“设为只读”或“取消只读”
- 所谓“右键图标 → Read-only”是误传,Notepad++ 主程序图标右键菜单里没有该选项;部分插件或皮肤可能伪造了类似入口,但不生效
怎么真正让 Notepad++ 显示 [READ ONLY]?
必须通过 Windows 系统属性设置文件本身的只读标志,Notepad++ 才会在打开时读取并呈现:
- 右键目标文件 → 「属性」→ 勾选「只读」→ 「确定」(注意:对文件夹勾选只读,不会递归应用到子文件)
- 命令行快速设置:
attrib +R "C:\path\to\file.txt"(管理员权限非必需,只要对文件有所有权即可) - Git 仓库里的文件不受
.gitattributes或chmod影响——Windows 只认attrib设置的只读位
⚠️ 关键限制:Notepad++ 只在**打开文件瞬间**检查一次只读属性,之后不会监听变更。你在它运行中用资源管理器或 attrib -R 改了属性,标题栏和菜单状态也不会刷新。必须关闭再重新打开该文件。
编辑只读文件时怎么强制保存?
Notepad++ 提供绕过系统写保护的操作,但不是万能的:
-
Ctrl+Shift+S触发「另存为…」,换路径或改名保存(最安全,推荐) - 若坚持原地覆盖:先在命令行执行
attrib -R "file.txt"清除只读位,再点Save(需有该文件的写权限) - 不要依赖「以管理员身份运行 Notepad++」——UAC 不会自动提升对普通文件的写权限,
Access is denied错误照常发生
真正需要防误改的配置文件(如 notepad++.xml、userDefineLang.xml),单靠只读属性远远不够:用户随时可以右键取消勾选。得结合 Windows ACL 权限控制 + 定期备份习惯。


















