Юпитер: Как я могу вспомнить и отредактировать предыдущий текст "In:"? - PullRequest
0 голосов
/ 13 мая 2018

В командной строке Python сессии я могу нажать Control-P, чтобы получить ранее введенную строку, отредактировать ее.

Как мне выполнить аналогичную операцию в Jupyter, то есть перенести содержимое предыдущего блока «In:»?

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Может быть, неудачное решение, но вы можете просто скопировать ячейку, верно? Нажмите Esc, выберите ячейку (скорее всего, предыдущую, поэтому нажмите Up) и нажмите c и v.

0 голосов
/ 13 мая 2018

Похоже, Jupyter не имеет такой функции из коробки, хотя вы можете написать свой собственный ярлык клавиатуры с помощью CodeMirror API: https://codemirror.net/doc/manual.html

Сначала вам нужно создать собственный custom.js файл: http://jupyter -notebook.readthedocs.io / ен / стабильный / примеры / ноутбук / 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);

}

Это скопирует содержимое ячейки выше и вставит ее в текущую выбранную ячейку. Вы можете заменить метод paste_cell_replace() на paste_cell_above(), чтобы создать новую ячейку вместо замены содержимого текущей выбранной ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...