I’ve been hesitant to use notebooks for a while but I’ve come around to them since they can save a lot of time for tasks where one of the operations in your script takes a lot more time than others. I’m now trying to generally split my code into
where the experimentation scripts are more frequently IPython notebooks. This has the advantage that I can generate useful tutorials with little effort.
IPython can be started on a remote system without a browser. You should specify a port of your choice.
ipython notebook --no-browser --port=8889
Next, on your local system, create an SSH tunnel to the remote system but forward a chosen local port to the chosen remote port.
ssh -N -L localhost:8887:localhost:8889 msyriac@astro
Keep this connection alive by not closing the terminal, or use
the -f option to send it to the background.
Finally, in a browser on your local system, open a connection to the chosen local port.
localhost:8887
IPython magic to auto-reload modules as you work on them
%load_ext autoreload
%autoreload 2
| Shortcut | Action |
|---|---|
| Shift-Enter | run cell |
| Ctrl-Enter | run cell in-place |
| Alt-Enter | run cell, insert below |
| Ctrl-m x | cut cell |
| Ctrl-m c | copy cell |
| Ctrl-m v | paste cell |
| Ctrl-m d | delete cell |
| Ctrl-m z | undo last cell deletion |
| Ctrl-m – | split cell |
| Ctrl-m a | insert cell above |
| Ctrl-m b | insert cell below |
| Ctrl-m o | toggle output |
| Ctrl-m O | toggle output scroll |
| Ctrl-m l | toggle line numbers |
| Ctrl-m s | save notebook |
| Ctrl-m j | move cell down |
| Ctrl-m k | move cell up |
| Ctrl-m y | code cell |
| Ctrl-m m | markdown cell |
| Ctrl-m t | raw cell |
| Ctrl-m 1-6 | heading 1-6 cell |
| Ctrl-m p | select previous |
| Ctrl-m n | select next |
| Ctrl-m i | interrupt kernel |
| Ctrl-m . | restart kernel |
| Ctrl-m h | show keyboard shortcuts |
I’ve now stopped running notebooks in the browser since one can do it entirely within emacs using the ein package installable from MELPA. The steps involved are:
ipython notebook