如何 undo/redo 在 Jupyter 笔记本中选定的单元格内进行更改?

How to undo/redo changes inside the selected cell in Jupyter notebook?

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

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

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

这个全局 undo/redo 是一个新的 功能 ,它支持在 JupyterLab 3.1 中添加的实时协作。对于许多用例来说,它确实不是最佳选择。

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

{
    "experimentalDisableDocumentWideUndoRedo": true
}

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

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

pip install "jupyterlab<3.1"

或康达:

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

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