notepad++未保存内容恢复靠内置session.xml和recovery_*.tmp快照,非插件实现;需勾选“会话快照”与“记住当前会话”,崩溃后启动时弹窗恢复,主动关闭不保存则无快照。

Notepad++ 本身不记录编辑历史,Recode 插件也不是官方插件,也不具备“检索未保存缓存”的能力——它只是个轻量级代码片段管理器,和崩溃恢复完全无关。想靠它找回没点保存就关掉的内容,会白忙一场。
Notepad++ 没保存就崩溃,恢复靠的是 session.xml + recovery_.tmp,不是插件
Notepad++ 的未保存内容恢复机制是内置的、独立于插件的。它依赖两个关键文件:
-
session.xml:存标签页结构(文件名、路径、光标位置等),位于%APPDATA%\Notepad++\ -
recovery_*.tmp:二进制内存快照,存实际文本内容,位于%APPDATA%\Notepad++\backup\
这两者必须同时存在且未被破坏,才能触发“恢复上次会话”流程。插件(包括 Recode、PythonScript 或任何第三方工具)无法读取或重建这些快照。
为什么 Recode 插件打不开 recovery_.tmp 文件?
因为 recovery_*.tmp 不是普通文本文件,而是 Notepad++ 进程退出前 dump 出的内存镜像,含头部元数据和编码标识。用 Recode 或其他插件强行加载,只会看到乱码或报错 Invalid file format。
- 正确做法:确保
notepad++.exe进程已彻底退出(任务管理器里查无此进程) - 然后启动 Notepad++,不打开任何文件,等待左下角弹出灰色提示条:“恢复上次会话?[是] [否]”
- 若没弹,手动点菜单:文件 → 会话恢复 → 恢复上次会话(该选项灰显 = 快照不可用)
Recode 插件能做什么?别指望它救急
Recode 是用来存你主动添加的代码模板或常用片段的,比如 console.log 快捷输入、SQL 查询骨架等。它的数据存在 %APPDATA%\Notepad++\plugins\Config\Recode\ 下,和编辑缓存毫无关系。
- 它不会监听你当前文档是否保存,也不会自动抓取未保存内容
- 它不生成、不备份、不扫描
backup目录下的任何文件 - 如果你没提前把那段未保存的代码手动存进
Recode,它就完全不知道那串文字存在过
真正容易被忽略的点是:恢复只在异常退出时触发,而“主动点 × → 选‘否’不保存”属于正常退出,session.xml 和 recovery_*.tmp 都不会写入——此时连 backup 目录都是空的,更别说靠插件补救了。











