【问题标题】:Jupyter: Move cell to top of notebookJupyter:将单元格移动到笔记本顶部
【发布时间】:2018-10-30 18:08:29
【问题描述】:

我经常在笔记本读到一半时意识到我忘记了导入,我想将它移到笔记本的顶部(我试图保留大部分导入)。有没有办法向~/.jupyter/custom/custom.js 添加一个键盘快捷键,将一个单元格移动到笔记本的顶部?

目前,我通过剪切单元格、滚动到笔记本顶部、粘贴并向下滚动到我所在的位置来执行此操作(经常在回来的路上失去我的位置)。

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

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;
    }
});

【问题讨论】:

    标签: javascript jupyter-notebook jupyter


    【解决方案1】:

    它有部分记录;但是您必须了解一点 JavaScript 才能创建键盘快捷键。

    如您所见,编辑custom.js 以绑定键盘快捷键,如mentioned in the documentation(如果该操作不是内置的,则必须使用第二种方法)

    对于文档,read the source code(在线或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 表示该快捷方式仅在命令模式下有效。
    猜你喜欢
    • 1970-01-01
    • 2016-09-28
    • 2017-08-04
    • 2016-01-14
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2017-02-27
    相关资源
    最近更新 更多