Custom Keyboard Shortcuts.ipynb
113 lines
| 2.9 KiB
| text/plain
|
TextLexer
Brian E. Granger
|
r17481 | { | ||
Min RK
|
r18669 | "cells": [ | ||
Brian E. Granger
|
r17496 | { | ||
Min RK
|
r18669 | "cell_type": "markdown", | ||
"metadata": {}, | ||||
"source": [ | ||||
"# Keyboard Shortcut Customization" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "markdown", | ||||
"metadata": {}, | ||||
"source": [ | ||||
"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:" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "code", | ||||
Jonathan Frederic
|
r20536 | "execution_count": null, | ||
Min RK
|
r18669 | "metadata": { | ||
"collapsed": false | ||||
}, | ||||
Jonathan Frederic
|
r20536 | "outputs": [], | ||
Min RK
|
r18669 | "source": [ | ||
"%%javascript\n", | ||||
"\n", | ||||
"IPython.keyboard_manager.command_shortcuts.add_shortcut('r', {\n", | ||||
" help : 'run cell',\n", | ||||
" help_index : 'zz',\n", | ||||
" handler : function (event) {\n", | ||||
" IPython.notebook.execute_cell();\n", | ||||
" return false;\n", | ||||
" }}\n", | ||||
");" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "markdown", | ||||
"metadata": {}, | ||||
"source": [ | ||||
"There are a couple of points to mention about this API:\n", | ||||
"\n", | ||||
"* The `help_index` field is used to sort the shortcuts in the Keyboard Shortcuts help dialog. It defaults to `zz`.\n", | ||||
"* 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.\n", | ||||
"* If you don't need a `help` or `help_index` field, you can simply pass a function as the second argument to `add_shortcut`." | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "code", | ||||
Jonathan Frederic
|
r20536 | "execution_count": null, | ||
Min RK
|
r18669 | "metadata": { | ||
"collapsed": false | ||||
}, | ||||
Jonathan Frederic
|
r20536 | "outputs": [], | ||
Min RK
|
r18669 | "source": [ | ||
"%%javascript\n", | ||||
"\n", | ||||
"IPython.keyboard_manager.command_shortcuts.add_shortcut('r', function (event) {\n", | ||||
" IPython.notebook.execute_cell();\n", | ||||
" return false;\n", | ||||
"});" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "markdown", | ||||
"metadata": {}, | ||||
"source": [ | ||||
"Likewise, to remove a shortcut, use `remove_shortcut`:" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "code", | ||||
Jonathan Frederic
|
r20536 | "execution_count": null, | ||
Min RK
|
r18669 | "metadata": { | ||
"collapsed": false | ||||
}, | ||||
Jonathan Frederic
|
r20536 | "outputs": [], | ||
Min RK
|
r18669 | "source": [ | ||
"%%javascript\n", | ||||
"\n", | ||||
"IPython.keyboard_manager.command_shortcuts.remove_shortcut('r');" | ||||
] | ||||
}, | ||||
{ | ||||
"cell_type": "markdown", | ||||
"metadata": {}, | ||||
"source": [ | ||||
"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." | ||||
] | ||||
Brian E. Granger
|
r17496 | } | ||
Min RK
|
r18669 | ], | ||
Min RK
|
r20278 | "metadata": { | ||
"kernelspec": { | ||||
"display_name": "Python 3", | ||||
"language": "python", | ||||
"name": "python3" | ||||
}, | ||||
"language_info": { | ||||
"codemirror_mode": { | ||||
"name": "ipython", | ||||
"version": 3 | ||||
}, | ||||
"file_extension": ".py", | ||||
"mimetype": "text/x-python", | ||||
"name": "python", | ||||
"nbconvert_exporter": "python", | ||||
"pygments_lexer": "ipython3", | ||||
Jonathan Frederic
|
r20536 | "version": "3.4.3" | ||
Min RK
|
r20278 | } | ||
}, | ||||
Min RK
|
r18669 | "nbformat": 4, | ||
"nbformat_minor": 0 | ||||
Min RK
|
r20278 | } | ||