notepad++ 无文件锁定功能,只读状态依赖windows属性且仅在打开时检测一次;需手动设置文件只读属性、配置ntfs权限、启用周期备份及local history插件实现多重防护。

Notepad++ 本身没有“锁定文件”的功能,它不会阻止你编辑、保存或覆盖一个文件——哪怕这个文件在系统层面已被设为只读。所谓“锁定”,必须靠 Windows 文件系统属性 + 用户习惯 + 额外防护手段组合实现。
为什么 Notepad++ 不显示 [READ ONLY] 或仍允许保存
Notepad++ 只在打开文件时读取一次 FILE_ATTRIBUTE_READONLY 标志,之后完全不监听属性变化。常见现象和应对:
- 改了文件属性但标题栏没变 → 必须关闭再重新打开该文件,否则状态不会刷新
- 点了「保存」还能成功 → 文件实际不是只读(
attrib +R "file.txt"没执行,或对文件夹勾选了只读却误以为会递归生效) - 「另存为」能绕过只读限制 → 这是设计行为,不是 bug;
Save被禁用,但Save As始终可用 - 以管理员身份运行 Notepad++ 也无法提升对普通文件的写权限 → UAC 不会自动赋予对目标文件的修改权
真正起效的只读设置方式(Windows 层面)
Notepad++ 的只读响应完全依赖操作系统返回的属性。设置必须在文件本体上完成:
- 右键文件 → 「属性」→ 勾选「只读」→ 点击「确定」(注意:对文件夹勾选只读 ≠ 对其内文件生效)
- 命令行快速操作:
attrib +R "C:path oile.conf"(加 R),或清除:attrib -R "file.conf" - Git 仓库中
.gitattributes或chmod不影响 Windows 只读位,别混淆 - 若文件在网络路径(如
\servershare),部分 SMB 版本下只读标志可能被忽略,建议本地编辑
防误改比“只读”更关键:权限 + 备份 + 插件组合
单靠只读属性防不住手抖取消勾选,也拦不住复制粘贴覆盖。真正保护配置文件(如 notepad++.xml、userDefineLang.xml)得靠三层:
- NTFS 权限限制:右键文件 → 「属性」→ 「安全」→ 编辑 → 移除「Users」组的「写入」权限(需管理员身份)
- 周期性备份 + 会话快照:设置 → 首选项 → 备份 → 勾选「启用会话快照和周期性备份」,间隔设为 3–5 分钟;它会保存 XML 快照,崩溃后可恢复未保存内容
-
Local History 插件:通过 Plugin Admin 安装,会在每个文件同目录生成
.history/,按分钟记录变更,右键即可比对或还原
最易被忽略的一点:Notepad++ 的「退出时备份」只在正常关闭流程中触发,断电、强制杀进程、蓝屏时完全无效——所以别把唯一希望押在那个 .bak 文件上。











