<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 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
Step1:  There are a couple of points to mention about this API
Step2:  Likewise, to remove a shortcut, use remove_shortcut
<ASSISTANT_TASK:>
Python Code:
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {
    help : 'run cell',
    help_index : 'zz',
    handler : function (event) {
        IPython.notebook.execute_cell();
        return false;
    }}
);
Explanation: 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:
End of explanation
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('r', function (event) {
    IPython.notebook.execute_cell();
    return false;
});
Explanation: There are a couple of points to mention about this API:
The help_index field is used to sort the shortcuts in the Keyboard Shortcuts help dialog. It defaults to zz.
When a handler returns false it indicates that the event should stop propagating and the default action should not be performed. For further details about the event object or event handling, see the jQuery docs.
If you don't need a help or help_index field, you can simply pass a function as the second argument to add_shortcut.
End of explanation
%%javascript
IPython.keyboard_manager.command_shortcuts.remove_shortcut('r');
Explanation: Likewise, to remove a shortcut, use remove_shortcut:
End of explanation
<END_TASK>