Keyboard Shortcut Customization¶
Starting with IPython 2.0 keyboard shortcuts in command and edit mode are fully customizable. These customizations are made using the IPython JavaScript API. Here is an example that makes the r key available for running a cell:
In [7]:
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
help : 'run cell',
help_index : 'zz',
handler : function (event) {
IPython.notebook.execute_cell();
return false;
}}
);
There are a couple of points to mention about this API:
- The
help_indexfield is used to sort the shortcuts in the Keyboard Shortcuts help dialog. It defaults tozz. - When a handler returns
falseit indicates that the event should stop propagating and the default action should not be performed. For further details about theeventobject or event handling, see the jQuery docs. - If you don't need a
helporhelp_indexfield, you can simply pass a function as the second argument toadd_shortcut.
In [11]:
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', function (event) {
IPython.notebook.execute_cell();
return false;
});
Likewise, to remove a shortcut, use remove_shortcut:
In [8]:
%%javascript
IPython.keyboard_manager.command_shortcuts.remove_shortcut('r');
If you want your keyboard shortcuts to be active for all of your notebooks, put the above API calls into your <profile>/static/custom/custom.js file.