Часто на полпути к записной книжке я понимаю, что забыл импорт и хочу переместить его в верхнюю часть записной книжки (где я стараюсь сохранить большую часть своего импорта). Есть ли способ добавить к ~/.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;
}
});
Это частично задокументировано; однако вам нужно немного знать 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
означает, что ярлык работает только в командном режиме.