我最近有一个Jupyter版本而不是一个菜单动作,允许你重启&全部运行:
我想添加一个绑定到此操作的键盘快捷键。我看过documentation 用于键盘自定义,但我仍然不确定如何添加键盘快捷键。
我已经从源代码构建了Juypter,因此根据帮助,我似乎需要向notebook/static/custom/custom.js
添加一些代码。
我尝试添加以下内容:
IPython.keyboard_manager.command_shortcuts.add_shortcut('meta-r', function (event) {
IPython.notebook.restart_kernel();
IPython.notebook.execute_run_all();
return false;
});
然而,当我按 [Meta-r] 时,内核似乎重启,但 execute_run_all()没有被执行。
答案 0 :(得分:8)
从Jupyter Notebook 5.0开始,您现在可以直接在菜单选项中创建和编辑键盘快捷键。截至目前,这是帮助 - >编辑键盘快捷键。该对话框底部有一个指南。
答案 1 :(得分:6)
这是我custom.js
中的内容。要使其正常工作,必须在初始化应用程序后添加快捷方式:
$([Jupyter.events]).on("app_initialized.NotebookApp", function () {
Jupyter.keyboard_manager.command_shortcuts.add_shortcut('0,1', {
help: 'restart and run all',
help_index: '0,1',
handler: function (event) {
Jupyter.notebook.kernel.restart();
restartTime = 2000 // decrease this if you have a fast computer
setTimeout(function(){ Jupyter.notebook.execute_all_cells(); }, restartTime);
return false;
}}
);
});
答案 2 :(得分:3)
以防万一有人偶然发现这篇文章寻找相同的答案:你需要等待内核在执行前以超时重启。 请参阅此discussion on GitHub。
在你的情况下,它会给出:
IPython.keyboard_manager.command_shortcuts.add_shortcut('meta-r',
function (event) {
IPython.notebook.kernel.restart();
setTimeout(function(){ IPython.notebook.execute_all_cells(); }, 1000);
return false;
});