【问题标题】:Jupyter lab shortcutsJupyter 实验室快捷方式
【发布时间】:2018-08-23 03:08:59
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否能够将 JupyterLab 调整为更可用的设置,或者您仍然坚持使用 NB

标签: jupyter jupyter-lab


【解决方案1】:

此问题已在 GitHub here 上得到解答。您还可以在 here 中查找正确的 command 名称以在您的键盘快捷方式用户覆盖中输入,因为它们并不总是与命令侧栏中显示的相同。

以下是我使用的一些:

{
  "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 折叠所有单元格代码。

【讨论】:

  • 谢谢你。我试过这个并且它有效,但它确实很慢。按“O”后折叠单元格输出需要 1 秒多的时间。你知道是什么原因造成的吗?如果我去查看 - >折叠选定的输出,它是即时的。 (我在 macOS 上,如果这很重要的话)
  • 啊,我找到了原因:第二个快捷方式也使用 O,因此它正在等待查看是否键入了第二个 O。如果我注释掉第二个键盘快捷键,它会按预期工作。
  • 不错,东西都到这里了,有没有代码可以做hide-selected-cell-code?​​span>
  • @jeschwar:是否有一个可以包含在键盘快捷键覆盖中的所有可能命令的干净列表?他们没有在那里进行更改的主列表似乎很奇怪。不然怎么知道命令的名字?
  • @Nemo From here "您需要对其进行格式化,以便有一个包含多个条目的“快捷方式”列表:"。
【解决方案2】:

在高级设置的键盘快捷键上,此代码适用于上下移动单元格

{
    // 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"
      ]
    }
    ]

}

【讨论】:

    【解决方案3】:

    我使用这些设置来绑定将单元格向上/向下移动到 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"
          ]
        }
    }
    

    【讨论】:

      【解决方案4】:

      上面 pX0r 和 plalanne 的答案对我有用,对 Mac 进行了细微的修改。

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

      1. 在“设置”选项卡下打开“高级设置编辑器”,或在 Mac 中打开 command ,
      2. 导航到键盘快捷键。您应该会看到回答的屏幕平面。
      3. 使用 pX0r 的代码,但是在键绑定中进行一项更改,因为 Ctrl Arrowup 保留在 Mac 中以查看所有正在运行的应用程序(如果您以这种方式设置)。同样,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"
            ]
          }
      }
      

      【讨论】:

        【解决方案5】:

        您应该在设置/键盘快捷键中编辑设置文件。这里:

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

        【讨论】:

        • 是的,我看到了。但我认为我想要的特定命令不可用。
        • 确实如此。我设法自定义了一些快捷方式,但找不到您提到的命令
        【解决方案6】:

        如果您无法保存“用户首选项”设置并出现语法错误

        [附加属性错误]命令不是有效属性

        您可能错过了嵌套在“快捷方式”列表中,如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"
                }
            ]
        }
        

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

        【讨论】:

        • 这与问题无关。
        猜你喜欢
        • 1970-01-01
        • 2016-11-06
        • 1970-01-01
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-03
        相关资源
        最近更新 更多