按 esc 再按 z 是恢复误删单元格唯一可靠、零成本的实时补救方式;ctrl+z 仅在编辑模式下有效,对删除整个单元格无效;undo delete cell 菜单项临时出现且不稳定;%history 可找回已运行代码,但依赖内核会话存活。

没关窗口前,按 Esc 再按 z 就能立刻恢复——这是唯一可靠、零成本的实时补救方式。
误删单元格后 Ctrl+Z 没反应?你按错模式了
很多人下意识按 Ctrl+Z,但这个组合只在编辑模式(绿色边框)下撤销单元格内部的文本修改,对“删除整个单元格”完全无效。真正管用的是命令模式下的 z 键。
- 先确认当前是命令模式:按
Esc,左侧边框变蓝,光标消失 - 再按
z,会立即还原最近一次删除或剪切的单元格(支持连续按多次,逐级回退) - 如果已经切换到其他单元格或执行了新操作,
z仍有效,只要 notebook 进程没重启
Undo delete cell 菜单项在哪?别找,它藏得深
菜单栏确实有 Edit → Undo delete cell,但它不是默认可见项——只有在刚删完单元格、且尚未执行任何其他命令模式操作时才会临时出现。依赖它风险高,不如直接用 Esc+z 稳定。
- 该菜单项不支持批量恢复,一次只撤一个
- 如果中间按过
a、b、Enter等键,菜单就会消失 - 部分 JupyterLab 版本(如 4.3.1)存在虚拟滚动 bug,导致菜单点击无响应,此时
z仍是唯一通路
单元格删了,代码还能找回来吗?看它有没有运行过
如果单元格被删,但里面的代码曾经运行过,可以用 %history 找回;没运行过的,Jupyter 不记录,硬盘里也不存在。
- 新建一个代码单元格,输入
%history -n 20查最近 20 条已执行命令 - 想导出全部历史到文件?用
%history -f history_backup.py -
%history只读取当前内核 session 的记录,重启 kernel 后历史清空 - 注意:
history不是魔法,它不保存变量值、不保存未执行的草稿、也不包含 Markdown 单元格内容
最易被忽略的一点:恢复操作只在 notebook 进程存活时有效。关掉浏览器标签、重启 Jupyter server、甚至 kernel crash,都会让 z 和 %history 失效。所以看到单元格消失,第一反应不是慌,而是停手、按 Esc、再按 z —— 三秒内解决,比查文档快。











