问题
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.
回答1:
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;
});
回答2:
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
回答3:
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.
回答4:
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