有没有办法在没有模式的情况下使用Jupyter笔记本电脑?

时间:2020-04-12 18:07:14

标签: jupyter-notebook jupyter-lab

我正在使用jupyter-lab,想知道是否有一个插件可以让我在不切换命令和编辑模式的情况下工作?

我一直在剪切,粘贴和撤消单元格,因为当我打算在“编辑”模式下键入字符“ x”,“ y”或“ z”时,不小心切换到了命令模式。

某些上下文:模式的概念对于Jupyter笔记本是必不可少的。您处于命令模式( Esc )或编辑模式( Enter ),但是我想使用Jupyter Notebooks带有一组快捷方式,就好像我正在编辑单个文档。 #nomodes。

1 个答案:

答案 0 :(得分:0)

除了默认快捷方式外,JupyterLab 中实际上几乎没有特定于模式的快捷方式。大多数在命令模式下运行的命令无需先退出编辑模式即可运行。

通过使用独立于当前模式的快捷方式,我们可以非常接近 Jupyter 中的 modeless editing。有关于如何customize the keyboard shortcuts here的说明。

例如,cut-cell 命令的默认快捷方式是 x。这可以替换为快捷键 Accel Ctrl X。这可以在任何一种模式下使用而不会干扰编辑。只需将以下内容添加到“用户首选项”面板中:

{"shortcuts": [
  {
    "command": "notebook:cut-cell",
    "disabled": true,
    "keys": ["X"],
    "selector": ".jp-Notebook:focus"
  },
  {
    "command": "notebook:cut-cell",
    "keys": ["Accel Ctrl X"],
    "selector": "body"},
  }
]}

每个默认的命令模式快捷键应该修改如下:

  1. 为快捷方式添加通用修饰符的前缀(例如 Accel Ctrl)。 Accel 只是键盘上 Super/Command/Windows 键的 Jupyter 术语。
  2. 保持相同的编辑模式快捷键。关键见解是使用 "selector": "body"。该选择器可以针对两种模式。
  3. 与任何默认快捷方式覆盖一样,确保将原始快捷方式标记为 "disabled: true"

或者,您可以将相同的快捷方式复制两次:

  • 一个带有 "selector": ".jp-Notebook.jp-mod-editMode" 的编辑模式。
  • 一个带有 "selector": ".jp-Notebook:focus" 的命令模式。

notebook:run-cell 的默认快捷方式实际上是这样设置的。 但是我没有遇到使用“body”作为选择器的问题。

请注意:这是一个相当乏味且容易出错的练习。有几十个默认快捷键需要修改。