I have the following configuration for shortcuts, that works after running it in the cell of Jupiter notebook:
%%javascript
IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-q', {
help: 'Clear all output', // This text will show up on the help page (CTRL-M h or ESC h)
handler: function (event) { // Function that gets invoked
if (IPython.notebook.mode == 'command') {
IPython.notebook.clear_all_output();
return false;
}
return true;
}
});
How can I setup Jupiter notebook to make this initialization automatically on startup?
I tried adding the same code (without %%javascript) to C:\Users\<username>\.ipython\profile_default\static\custom\custom.js but it didn't work.
I have only one profile, created with ipython profile create, Python 3.3, Windows 7.
Thanks in advance.
custom.js is the correct place for this code. Try wrapping it as follows (don't forget the return true before the end of the block):
$([IPython.events]).on("app_initialized.NotebookApp", function () {
<your code>
return true;
});
In the new version of Jupyter notebook (update it either with pip install --upgrade notebook or if you use conda conda upgrade notebook), you can customize them from the notebook itself.
To do this Help -> Edit keyboard shortcuts
Adding hotkeys the easy way with nbextensions
- Install nbextensions.
pip install jupyter_contrib_nbextensions - Then launch jupyter notebook.
- The the intro page will have a new tab called nbextensions click it and enable Keyboard Shortcut Editor.
- Now open any notebook click help>keyboard shortcuts
- Each shortcut will have a pencil icon next to it if you click on it then you can set the shortcut to whatever you want.
1. For changing command mode shortcuts: refer Salvador's answer
2. For changing edit mode shortcuts:
Edit the file, ~/.jupyter/nbconfig/notebook.json as explained on https://jupyter-notebook.readthedocs.io/en/stable/extending/keymaps.html
For example, after replacing the control-enter shortcut to execute code, with command-enter on macOS, the file looks like this:
{
"Notebook": {
"Toolbar": true,
"Header": true
},
"Cell": {
"cm_config": {
"lineNumbers": true
}
},
"keys": {
"command": {
"unbind": [
"ctrl-enter"
],
"bind": {
"cmdtrl-enter": "jupyter-notebook:run-cell"
}
},
"edit": {
"unbind": [
"ctrl-enter"
],
"bind": {
"cmdtrl-enter": "jupyter-notebook:run-cell"
}
}
}
}
来源:https://stackoverflow.com/questions/32046655/how-to-add-keyboard-shortcuts-permanently-to-jupyter-ipython-notebook
