2015-08-23 58 views
0

當進入編輯模式,立即(火狐,OSX,雖然這不應該的問題),表現如下:在Jupyter筆記本筆記本,分配降價或標題類型我想配置我Jupyter筆記本電池

當單元格被分配Markdown或標題類,它應該立即切換到編輯模式。在標題的情況下,光標應該位於之後的的哈希標記。

單元格應該在失去焦點時自動渲染(模糊)。

總體思路是讓筆記本以「不太模態」的方式運行;不像vi,更像Emacs和Mathematica筆記本。

大概這可以通過添加keybinding代碼到custom.js來完成。

謝謝!

回答

2

(假設默認的配置文件和類似Unix的系統),下面的代碼進入〜/ .ipython/profile_default /靜態/定製/ 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; 
});