如何在 Jupyter notebook 中撤销/恢复所选单元格中的更改?

8

我正在使用安装在Windows 10上的Anaconda JupyterLab中的Jupyter Notebook,尝试撤消/恢复所选单元格中的更改。然而,我只能撤消/恢复整个笔记本中的更改。

例如,我编辑了单元格#1和单元格#2。假设我想撤消单元格#1中的更改,因此我转到单元格#1并按Ctrl+Z,它将撤消单元格#2中的更改。

我的朋友使用Mac没有这个问题。有任何设置可以解决这个问题吗?我在网上搜索,但没有找到有相同问题的人。这太奇怪了!


1
现在有一个拉取请求来解决这个问题,请在Binder上测试并为讨论提供反馈。拉取请求地址 - krassowski
我更新了答案,因为JupyterLab 3.2已经发布了一个设置来恢复旧的行为。 - krassowski
2个回答

15

这个全局的撤销/重做是 JupyterLab 3.1 中添加的一项新功能,它允许实时协作,但对于许多用例确实不太理想。

JupyterLab 3.2 允许禁用笔记本级别的历史记录跟踪(请参见issue 10791PR 10949),但有一个注意事项:移动单元格时可能会丢失撤消历史记录,这就是为什么该设置被标记为实验性的原因(它需要更多的工作才能暴露或启用默认值)。要获取选择性的撤消/重做,请添加:

{
    "experimentalDisableDocumentWideUndoRedo": true
}
高级设置编辑器笔记本电脑 中保存并重新加载JupyterLab(如果在浏览器中使用,则刷新即可)。 如果这是决定性因素,您也可以坚持使用JupyterLab 3.0。要降级,可以使用pip:
pip install "jupyterlab<3.1"

或者conda:

conda install -c conda-forge "jupyterlab<3.1"

不过我建议仍然使用JupyterLab 3.2并尝试新的设置,这样您就可以为讨论做出贡献(如果您遇到任何问题或认为可以改进)。


1
我明白了!我的朋友(3.0)和我(3.1)正在使用不同版本的Jupyter Lab。感谢您的帮助! - s99090
https://github.com/jupyterlab/jupyterlab/issues/10791#issuecomment-979544958 - thistleknot
正如在问题中所评论的那样,您很可能使用的是3.1而不是3.2。 - krassowski
所以这个功能对于协作编辑是必需的,对吧?这可能意味着它将保持默认状态...好吧,这就是坚持使用jupyter-notebook的另一个原因... - jena

4

我最近也遇到了同样的烦人问题。我在这里添加一张图片,以说明如何禁用“文档范围撤销/重做”。

JupyterLab -> 设置 -> 高级设置编辑器 -> 笔记本电脑 -> 使用Ctrl+F查找“undo” -> 选中复选框“Experimental settings to...”。

之后记得关闭并重新打开JupyterLab!

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接