【问题标题】:How to move line (not cell) up/down in jupyter notebook using keyboard shortcut?如何使用键盘快捷键在jupyter笔记本中向上/向下移动行(不是单元格)?
【发布时间】:2020-09-14 16:02:30
【问题描述】:

如何在 jupyter notebook 中向下或向上移动一行(或一组选定的行)。有什么捷径吗?

将第 3 行移上一行后:

例如ALT+UPALT+DOWN 用于Eclipse IDE 中使用的上/下位移。
This 问题讨论单元位移。

【问题讨论】:

标签: python jupyter-notebook jupyter


【解决方案1】:

TLDR: 通过关注this tutorial,我能够启用所有 sublime-text 快捷方式(包括使用 Ctrl+Up/Ctrl/Down 的移动行)。

然后我可以通过编辑 sublime.js 来自定义快捷方式

完整答案:

  1. 使用jupyter --config-dir 查找您的 jupyter 路径
  2. 将以下代码添加到<JUPYTER-PATH>/custom/custom.js
require(["codemirror/keymap/sublime", "notebook/js/cell", "base/js/namespace"],
    function(sublime_keymap, cell, IPython) {
        // setTimeout(function(){ // uncomment line to fake race-condition
        cell.Cell.options_default.cm_config.keyMap = 'sublime';
        var cells = IPython.notebook.get_cells();
        for(var cl=0; cl< cells.length ; cl++){
            cells[cl].code_mirror.setOption('keyMap', 'sublime');
        }
 
        // }, 1000)// uncomment  line to fake race condition 
    } 
);
  1. 你需要找到这个codemirror/keymap/sublime.js(在第2点的代码中是必需的),对我来说,它在&lt;MY-PYTHON-ENVIRONMENT&gt;/lib/python3.8/site-packages/notebook/static/components/codemirror/keymap/sublime.js
  2. 在此文件的末尾,您可以在此文件的 keyMap.pcSublime 部分编辑快捷方式(如果您有 PC)。
  3. 对于 OP,要编辑的行是:swapLineUpswapLineDown

我是在安装了 Ubuntu 和 sublime 的情况下完成的。

【讨论】:

    【解决方案2】:

    由于 jupyter 使用代码块,您可以在代码块之间使用该快捷方式

    Ctrl + Shift + -
    

    但这仅适用于不在同一代码块中的代码单元之间。我认为没有内置的快捷方式。更多快捷键可以看这里:https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

    【讨论】:

      【解决方案3】:

      Jupyter 中没有这样的快捷方式,但是,您可以 manage your own shorcuts 转到 Help > Edit keyboard Shortcuts 并开始设置您的命令。

      this other post 上有一些很好的信息,可以引导您管理个人资料的 notebook.json 文件等等。

      希望这是有用的;)

      编辑:错字

      【讨论】:

        【解决方案4】:

        您可以在 Jupyter 笔记本中创建自定义快捷方式
        Jupyter Shortcuts

        【讨论】:

          【解决方案5】:

          你可以在 jupyter notebook 中用鼠标选择行。拖着它 在要移动它的行之前向上或向下。按 > 当您的文本仍处于选中状态时,键盘上的按钮。
          这会将光标带到所选行的末尾, 但在替换行的文本之前。按 Enter。


          【讨论】:

            猜你喜欢
            • 2017-02-16
            • 2023-03-12
            • 2022-01-04
            • 1970-01-01
            • 2023-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多