我想配置我的Jupyter笔记本(Firefox,OSX,虽然这应该无关紧要),表现如下:
当为单元格指定Markdown或标题类时,它应立即切换到编辑模式。在标题的情况下,光标应位于之后哈希标记。
细胞失去焦点时会自动渲染(模糊)。
总的想法是让笔记本的行为处于“模态不足”的状态。办法;不像vi,更像是Emacs和Mathematica笔记本。
据推测,这可以通过向custom.js添加键绑定代码来完成。
谢谢!
答案 0 :(得分:2)
(假设默认配置文件和类Unix系统),以下代码进入〜/ .ipython / profile_default / static / custom / custom.js
$([IPython.events]).on("app_initialized.NotebookApp", function () {
/* this is a utility function */
function set_editable_heading(event, level){
event.notebook.command_mode();
event.notebook.to_heading(undefined, level);
event.notebook.edit_mode();
var cm = event.notebook.get_selected_cell().code_mirror;
cm.setCursor({line:0, ch: level+1 });
cm.on("blur", function(){
event.notebook.get_selected_cell().render();
});
return false;
}
/* ... and analogously for other heading levels and for the command mode
(... command_shortcuts.add_shortcut() )
*/
IPython.keyboard_manager.edit_shortcuts.add_shortcut('ctrl-1', {
help: 'Set cell to Heading 1, editable',
handler: function (event) {
set_editable_heading(event, 1);
return false;
}
});
IPython.keyboard_manager.edit_shortcuts.add_shortcut('ctrl-m', {
help: 'Set cell to markdown, editable',
handler: function (event) {
event.notebook.command_mode();
event.notebook.to_markdown();
event.notebook.get_selected_cell().code_mirror.on("blur", function(){
event.notebook.get_selected_cell().render();
});
event.notebook.edit_mode();
return false;
}
});
return true;
});