Jupyter:将单元格移动到笔记本的顶部

9

我经常在笔记本的中途意识到我忘了一个导入,然后想将它移到笔记本的顶部(我试图将大多数导入保存在那里)。有没有一种方法可以通过~/.jupyter/custom/custom.js添加键盘快捷方式,将单元格移动到笔记本的顶部?

目前,我通过剪切单元格、滚动到笔记本顶部、粘贴并滚动回到原来的位置(通常在回程中会丢失我的位置)来实现这个功能。

下面是来自fastai论坛的代码,用于完成不同的任务:跳转到正在运行的单元格:

Jupyter.keyboard_manager.command_shortcuts.add_shortcut('CMD-I', {
    help : 'Go to Running cell',
    help_index : 'zz',
    handler : function (event) {
        setTimeout(function() {
            // Find running cell and click the first one
            if ($('.running').length > 0) {
                //alert("found running cell");
                $('.running')[0].scrollIntoView();
            }}, 250);
        return false;
    }
});

screenshot of problem

1个回答

2

这部分文档是有记录的;但是你需要了解一些JavaScript来创建一个键盘快捷方式。

正如你已经发现的那样,编辑custom.js绑定一个键盘快捷方式,就像文档中所提到的(如果操作不是内置的,则必须使用第二种方法)。

关于文档,请查看源代码(在线或在site-packages/notebook/static/notebook/js/*.js中,如果您本地安装了jupyter)。特别是,actions.js包含示例绑定和notebook.js包含您可以在笔记本上调用的函数。

这是一个示例。它的缺点是修改了jupyter剪贴板。为了避免这种情况,您可以查看notebook.move_cell_down函数的源代码以了解其实现方式,并相应地进行修改。

Jupyter.keyboard_manager.command_shortcuts.add_shortcut('cmdtrl-I', {
    help : 'Move cell to first in notebook',
    handler : function (env) {
        var index = env.notebook.get_selected_index();
        env.notebook.cut_cell();
        env.notebook.select(0);
        env.notebook.paste_cell_above();
        env.notebook.select(index);
    }
});

另外需要注意的是,command_shortcuts 表示该快捷键仅在命令模式下有效。 - user202729

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接