from IPython.html.widgets import * from IPython.display import display, display_javascript h = HTMLWidget(value="""""") display(h) def vim_interact(height, fixed_height, HideMySource, keymap): h.value = """"""%(keymap, "if (i==0) cells[i].code_mirror.setSize(null, 0); else" if HideMySource else "", height if fixed_height else "'auto'", keymap) interact(vim_interact, height=IntSliderWidget(min=10, max=1000, step=20, value=300), fixed_height = True, HideMySource = True, keymap = DropdownWidget(values=['default','emacs','vim','sublime'], value='vim', Description="keymap:") ) # attempt to override the chrome developer console, not finished yet from IPython.html.widgets import * from IPython.display import display, display_javascript h = HTMLWidget(value=r""" """) display(h) %%javascript /* Use Ctrl-Enter to execute this cell, automatically clear output */ (function(){ var idx = IPython.notebook.get_selected_index(); if(idx >0) setTimeout(function(){IPython.notebook.clear_output(idx-1);}, 100); setTimeout(function(){IPython.notebook.clear_output(idx);}, 100); $.getScript("/static/components/codemirror/keymap/vim.js"); IPython.CodeCell.options_default.cm_config.keyMap = 'vim'; IPython.keyboard_manager.edit_shortcuts.remove_shortcut('Esc'); setTimeout(function(){ var cells = IPython.notebook.get_cells(); var i; for(i in cells) {cells[i].cm_config.keyMap='vim'; cells[i].code_mirror.setSize(null, 300); } }, 100); setTimeout(function(){IPython.notebook.clear_output(idx);}, 100); if(idx>0) setTimeout(function(){IPython.notebook.clear_output(idx-1);}, 100); })(); # this will failed to load the output from IPython.display import Javascript, HTML display(HTML( """ """))