Jupyter 实验室快捷方式

Jupyter lab shortcuts

我已经使用 Jupyter Notebooks 几年了。我刚刚前往 Jupyter 实验室,但我发现缺少快捷方式是一种负担。

例如,我注意到我可以在左侧面板中搜索命令。 但我似乎无法轻松地将它们绑定到键盘快捷键。这可能吗?

例如,我想用 "O" 折叠当前单元格输出并用 "Shift O" 折叠所有代码单元格。

您应该在 Settings/Keyboard 快捷方式中编辑设置文件。这里:

您可以在那里指定您想要的任何自定义快捷方式!

这个问题在 GitHub here. You can also look here 上得到了回答,以便在您的键盘快捷键用户覆盖中输入正确的 command 名称,因为它们并不总是与命令 side-bar.

以下是我使用的一些:

{
  "shortcuts": [
    {
      "command": "notebook:hide-cell-outputs",
      "keys": [
        "O"
      ],
      "selector": ".jp-Notebook:focus"
    },    
    {
      "command": "notebook:show-cell-outputs",
      "keys": [
        "O", 
        "O"
      ],
      "selector": ".jp-Notebook:focus"
    },    

    {
      "command": "notebook:hide-all-cell-outputs",
      "keys": [
        "Ctrl L"
      ],
      "selector": ".jp-Notebook:focus"
    },

    {
      "command": "notebook:hide-all-cell-code",
      "keys": [
        "Shift O"
      ],
      "selector": ".jp-Notebook:focus"
    }
  ]
}

允许您按一次 O 隐藏单元格输出,按两次 O 显示单元格输出。最后一个按照您的要求折叠所有带有 Shift + O 的单元格代码。

我使用这些设置来绑定将单元格 up/down 移动到 Ctrl + Up/Down:

的操作
{
    // Move cell up
    "notebook:move-cell-up": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-up",
      "keys": [
        "Ctrl ArrowUp"
      ]
    },

    // Move cell down
    "notebook:move-cell-down": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-down",
      "keys": [
        "Ctrl ArrowDown"
      ]
    }
}

pX0r 和 plalanne 的上述回答结合起来对我有用,对 Mac.

进行了微小的修改

我希望这个循序渐进的迭代对像我这样的初级程序员有所帮助。总结:

  1. 在“设置”选项卡下打开“高级设置编辑器”,或在Mac中command ,
  2. 导航到键盘快捷键。你应该看到屏幕上的 plananne 回答了。
  3. 使用 pX0r 的代码,但是在 Mac 中保留 Ctrl Arrowup 键绑定以查看所有 运行 应用程序(如果您以这种方式设置) .同样,Shift Arrowup 用于选择多个单元格。结果,我选择了Alt Arrowup。请注意 Mac 键盘上的键为 alt/option。您必须将其称为 Alt 才能工作。你有它。将下面的代码复制到右窗格中的 User Overrides。
  4. 重新打开您的笔记本并测试它是否按预期工作。
  5. 只要在 GitHub 上定义了 here,您就可以用这种方式自定义更多键。大多数情况下,您只需要从第 72 行开始的命令 ID。
{
    // Move cell up
    "notebook:move-cell-up": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-up",
      "keys": [
        "Alt ArrowUp"
      ]
    },

    // Move cell down
    "notebook:move-cell-down": {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-down",
      "keys": [
        "Alt ArrowDown"
      ]
    }
}

如果无法保存 "User Preferences" 设置并出现语法错误

[additional property error] command is not a valid property

您可能错过了 "shortcuts" 列表中的嵌套,如 here 所述。此外,要覆盖旧设置,请执行以下操作,使用激活下一个选项卡和激活上一个选项卡作为示例:

{
    "shortcuts": [
        {
            "command": "application:activate-next-tab",
            "keys": [
                "Ctrl Shift ]"
            ],
            "selector": "body",
            "disabled": true  // disable old setting
        },
        {
            "command": "application:activate-previous-tab",
            "keys": [
                "Ctrl Shift ["
            ],
            "selector": "body",
            "disabled": true  // disable old setting
        },
        {
            "command": "application:activate-next-tab",
            "keys": [
                "Ctrl 1"  // enable new shortcut key
            ],
            "selector": "body"
        },
        {
            "command": "application:activate-previous-tab",
            "keys": [
                "Ctrl 2"  // enable new shortcut key
            ],
            "selector": "body"
        }
    ]
}

现在您可以点击保存并刷新浏览器以使新设置生效。

在高级设置的键盘快捷键上,这段代码可以很好地上下移动单元格

{
    // Move cell up
    "shortcuts": [
        {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-up",
      "keys": [
        "Alt ArrowUp"
      ]
        },
    // Move cell down
        {
      "selector": ".jp-Notebook:focus",
      "command": "notebook:move-cell-down",
      "keys": [
        "Alt ArrowDown"
      ]
    }
    ]

}