В среде IPython Notebook можно определить пользовательские сочетания клавиш, используя API-интерфейс IPython Javascript. Используя магию %%javascript
, можно написать javascript в интерактивной консоли IPython следующим образом (пример описан здесь):
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
help : 'run cell',
help_index : 'zz',
handler : function (event) {
IPython.notebook.execute_cell();
return false;
}}
);
Я хотел бы написать javascript, который создает ярлык во время режима редактирования, который связывает Ctrl-Alt-Down с действием "дублировать текущую строку" --- то есть переместите курсор в начало текущей строки, выберите строку, скопируйте строку, верните, вставьте. По сути, я хочу эмулировать сочетание клавиш Eclipse или Ctrl-d в Notepad ++ или C-C-SPACE C-n M-w C-y в Emacs. Файл 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;
}}
);
хотя мои попытки предполагают, что "ctrl-alt-down" - это неправильный способ представления последовательности ярлыков, и я не могу найти документацию для keyboard_manager
.
Я бы предпочел не пойти с (например,) решением AutoHotKey, так как хочу ограничить этот ярлык режимом редактирования IPython Notebook.