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( """
"""))