Jupyter:我如何回忆和编辑之前的“In:”文本?

Mar*_*son 4 jupyter-notebook

在命令行 Python 会话中,我可以按 Control-P 来检索以前输入的行编辑它。

如何在 Jupyter 中执行类似的操作,即继承前一个“In:”块的内容?

d27*_*nis 6

看起来 Jupyter 没有开箱即用的功能,不过,您可以使用 CodeMirror API 编写自己的自定义键盘快捷键:https ://codemirror.net/doc/manual.html

首先你需要创建你自己的custom.js文件:http : //jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/JavaScript%20Notebook%20Extensions.html#custom.js

你可以尝试这样的事情(取决于你期望得到什么):

CodeMirror.keyMap.pcDefault["Ctrl-P"] = function(cm) {

    var selected = Jupyter.notebook.get_selected_cell();
    if (!Jupyter.notebook.get_prev_cell(selected)) {
        // This is the first cell
        return;
    }

    Jupyter.notebook.select_prev();
    Jupyter.notebook.copy_cell();
    Jupyter.notebook.select_next();
    Jupyter.notebook.paste_cell_replace();
    Jupyter.notebook.handle_edit_mode(selected);

}
Run Code Online (Sandbox Code Playgroud)

这将复制上面单元格的内容并将其插入到当前选定的单元格中。您可以用替换paste_cell_replace()方法paste_cell_above()来创建一个新单元格,而不是替换当前选定单元格的内容。