Nell'ambiente Notebook IPython, è possibile definire scorciatoie da tastiera personalizzate utilizzando l'API Javascript IPython. Usando la magia %%javascript
, si può scrivere un javascript all'interno di console interattiva di IPython come segue (nell'esempio descritto here):Scorciatoia da tastiera personalizzata per Notebook IPython per duplicare la linea corrente in modalità di modifica
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
help : 'run cell',
help_index : 'zz',
handler : function (event) {
IPython.notebook.execute_cell();
return false;
}}
);
mi piacerebbe scrivere un javascript che crea un collegamento in modalità di modifica che si lega Ctrl-Alt Giù all'azione di 'duplica linea corrente' --- cioè, sposta il cursore all'inizio della linea corrente, seleziona la linea, copia la linea, ritorna, incolla. In sostanza, voglio emulare la scorciatoia da tastiera di Eclipse, o Ctrl-d in Notepad ++, o C-a C-SPACE C-n M-w C-y in Emacs. Il file javascript assumerà la forma di quanto segue:
%%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;
}}
);
se i miei tentativi suggeriscono 'ctrl-alt-down' è il modo sbagliato per rappresentare la sequenza di scelta rapida, e non riesco a trovare alcuna documentazione per il keyboard_manager
.
Preferirei non andare con una soluzione AutoHotKey (ad es.) Poiché voglio limitare questo collegamento alla modalità di modifica di IPython Notebook.