This post shows how to add customized permanent key bindings for jupyter notebook.
1. check the location of your jupyter config folder using the command:
sudo ~/.local/bin/jupyter --config-dir
I am running Ubuntu. The config folder, by default is, `/home/your_user_name/.jupyter`
2. Create a folder `custom` in the config folder.
3. Create a file `custom.js` in the `custom` folder. (So the path for `custom.js` is `/home/your_user_name/.jupyter/custom/custom.js`) Add your key binding function in `custom.js`. Here is an example adding a key bind combo for restarting and re-running all cells.
$([Jupyter.events]).on("app_initialized.NotebookApp", function () { Jupyter.keyboard_manager.command_shortcuts.add_shortcut('0,1', { help: 'restart and run all', help_index: '0,1', handler: function (event) { Jupyter.notebook.kernel.restart(); setTimeout(function(){ Jupyter.notebook.execute_all_cells(); }, 1000); return false; }} ); });
4. Now restart the Jupyter and try press 0 followed by 1 in the command mode. All cells should be re-run after an one second delay.
Reference:
https://www.webucator.com/blog/2015/11/show-line-numbers-by-default-in-ipython-notebook/
http://stackoverflow.com/questions/32573958/how-to-bind-a-command-to-restart-and-run-all