在IPython Notebook环境中,可以使用IPython Javascript API定义自定义键盘快捷键.使用%%javascript魔法,可以在IPython的交互式控制台中编写一个javascript,如下所示(此处描述的示例):
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
help : 'run cell',
help_index : 'zz',
handler : function (event) {
IPython.notebook.execute_cell();
return false;
}}
);
Run Code Online (Sandbox Code Playgroud)
我想编写一个javascript,在编辑模式下创建一个快捷方式,将Ctrl-Alt-Down绑定到"重复当前行"的动作 - 也就是说,将光标移动到当前行的开头,选择行,复制行,返回,粘贴.基本上,我想模拟Eclipse的键盘快捷键,或Notepad ++中的Ctrl-d,或Emacs中的Ca C-SPACE Cn Mw Cy.javascript文件将采用以下形式:
%%javascript
IPython.keyboard_manager.edit_shortcuts.add_shortcut('ctrl-alt-down', {
help : 'run cell',
help_index : 'zz',
handler : function (event) {
[Code that duplicates the line];
return false;
}}
);
Run Code Online (Sandbox Code Playgroud)
虽然我的尝试建议'ctrl-alt-down'是表示快捷方式序列的错误方法,但我找不到任何文档keyboard_manager.
我宁愿不使用(例如)AutoHotKey解决方案,因为我想将此快捷方式限制为IPython Notebook的编辑模式.