【问题标题】:Is there a way to use Jupyter Notebooks without modes?有没有办法在没有模式的情况下使用 Jupyter Notebooks?
【发布时间】:2020-04-12 18:07:14
【问题描述】:

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

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

一些背景:模式的概念是 Jupyter 笔记本不可或缺的。您处于命令模式 (Esc) 或编辑模式 (Enter),但我想使用带有一组快捷方式的 Jupyter Notebooks,就好像我在编辑一样一个文件。 #nomodes。

【问题讨论】:

标签: jupyter-notebook keyboard-shortcuts jupyter-lab


【解决方案1】:

除了默认的快捷方式,在 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 只是 Jupyter 术语,表示键盘上的 Super/Command/Windows 键。
  2. 在编辑模式下保持相同的快捷键。关键见解是使用"selector": "body"。该选择器可以针对两种模式。
  3. 与任何默认快捷方式覆盖一样,请确保将原始快捷方式标记为"disabled: true"

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

  • 一个用于编辑模式,"selector": ".jp-Notebook.jp-mod-editMode"
  • 一个用于命令模式,"selector": ".jp-Notebook:focus"

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
  • 2016-01-10
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多