notepad++本身不支持真正自动保存,仅提供退出备份、会话快照和autosave插件三种机制;勾选“周期性备份”不会生成.bak文件,而是保存xml快照;需启用backup on save等选项才生成.bak;定时写回原文件必须安装autosave插件。

Notepad++ 本身不支持真正的自动保存(即定时把编辑内容写回原文件),所谓“自动保存”其实是误称;你真正能用上的,只有三种机制:退出时备份、周期性会话快照、以及通过 AutoSave 插件实现的强制保存——三者目的不同、触发条件不同、失效场景也完全不同。
为什么勾了「周期性备份」却没生成 .bak 文件?
因为 Notepad++ 的「Enable session snapshot and periodic backup」选项根本不管 .bak 文件。它只负责每 5 分钟在 %APPDATA%\Notepad++\backup\ 下存一个 snapshot_YYYYMMDD_HHMMSS.xml,用于崩溃后恢复打开的标签页,不复制源文件,也不保留历史版本。
真正生成 filename.bak 的是这两个必须同时启用的选项:
-
Backup on save:仅在你按Ctrl+S手动保存时触发 -
With original file extension:决定备份是否带.txt等后缀(如关掉,readme.txt备份成readme.bak;开启则为readme.txt.bak)
如果你期待“每 3 分钟自动存一份副本”,这个组合完全做不到——它只响应你的手动保存动作。
如何让 Notepad++ 真正定时写回原文件?
必须安装 AutoSave 插件。这是目前唯一稳定、跨平台、且被 Plugin Admin 官方收录的方案。
安装后,菜单 → Plugins → AutoSave → Options… 中关键设置:
-
Auto Save When:选Focus Lost(切出窗口就保存)或Periodically(填秒数,比如300表示 5 分钟) -
Auto Save What:务必勾选Current File Only,避免未命名的新建文档被乱存到默认路径 -
Save Untitled Files To:如果允许保存无名文件,这里必须填绝对路径(如C:\temp\untitled\),否则静默失败
注意:AutoSave 插件会直接覆盖原文件,没有撤销余地。不要对生产环境的关键配置文件开启「无确认自动保存」。
新建未命名文件(new 1)怎么防丢?
所有基于「退出」或「保存事件」的备份机制,对 new 1 这类未保存文件都无效——它没有磁盘路径,Backup on save 不触发,AutoSave 默认也不处理(除非你显式设置了 Save Untitled Files To)。
唯一可靠的方式是启用:
-
Enable session snapshot and periodic backup(会话快照)→ 保证崩溃后能还原标签页内容 -
Remember current session for next launch(记住当前会话)→ 下次启动自动打开所有标签页 - 插件
Local History→ 在每个文件所在目录下建.history/,连new 1第一次输入的内容都会被分钟级记录(只要它后来被保存过一次)
但注意:Local History 不会为纯新建未保存文件生成首条记录,它依赖第一次成功保存作为锚点。
容易被忽略的权限与同步陷阱
即使所有设置都勾了,以下情况仍会导致备份/自动保存静默失败,且 Notepad++ 不提示:
- 源文件路径为只读(如网络挂载盘、OneDrive 暂未同步完成的文件)
- 备份目录(如
C:\Program Files\Notepad++\backup\)无写入权限(UAC 限制常见) - 云同步工具(OneDrive / Syncthing)把
.history/或backup/目录纳入同步 → 可能引发冲突、重复上传、甚至无限循环
最稳妥的做法是:把自定义备份目录设在用户目录下(如 %USERPROFILE%\Documents\NppBackups\),并确保 .history/ 不被任何同步服务扫描。











