首页 > 解决方案 > 如何撤消/重做 Jupyter 笔记本中选定单元格内的更改?

问题描述

我在 Windows 10 上使用 Jupyter 笔记本(来自 anaconda Jupyter 实验室)并尝试撤消/重做所选单元格中的更改。但是,我只能撤消/重做整个笔记本中的更改。

例如,我编辑了单元格#1,然后编辑了单元格#2。假设我想撤消单元格#1 中的更改,所以我转到单元格#1 并按 control+z,但它会撤消单元格#2 中的更改。

我的朋友使用 Mac 没有这个问题。有没有这方面的设置?我在网上搜索并没有找到有同样问题的人。太奇怪了!

标签: jupyter-notebookjupyter-lab

解决方案


这种全局撤消/重做是 JupyterLab 3.1 中添加的一项新功能,可实现实时协作。对于许多用例来说,它确实不是最理想的。

JupyterLab 3.2 允许禁用笔记本范围的历史跟踪(请参阅issue 10791 nad PR 10949),但需要注意的是:移动单元格时,您可能会丢失撤消历史记录,这就是该设置被标记为实验性的原因(它需要做更多的工作)默认公开或启用)。要获得选择性撤消/重做,请添加:

{
    "experimentalDisableDocumentWideUndoRedo": true
}

Advanced Settings Editor→中Notebook,保存并重新加载 JupyterLab(如果您在浏览器中使用它,刷新就足够了)。

如果这会破坏交易,您也可以坚持使用 JupyterLab 3.0。要降级,您可以使用 pip:

pip install "jupyterlab<3.1"

或康达:

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

但我建议坚持使用 JupyterLab 3.2 并尝试新设置,以便您可以参与讨论(如果您遇到任何问题或认为可以改进)。


推荐阅读