2759bce3de
As discussed at length in #13392, the primary developer of EIN insists on updating the spacemacs bindings to avoid several-iterations stale commands of dubious functionality (in particular, multi-worksheet commands). As the transient state docstring must be "mated" to the updated bindings, he prefers not having to manually curate it, and exhorts the return of the automated docstring. He doesn't insist on it, though, like the above. bind-map.el counterfeits ein:notebook-mode bind-map replaces on the `minor-mode-map-alist` the keymap for ein:notebook-mode with the evilified map, thus making the original ein:notebook-mode-map inaccessible. This is might be intentional as one wonders whether having active both the original keymap and the evilified keymap makes sense. In EIN's case, yes, we really want the original keymap, e.g., C-c C-c to execute, to work. Otherwise C-c C-c defaults to running a python shell via the python-mode-map, which is really not what we want. |
||
---|---|---|
.. | ||
img | ||
packages.el | ||
README.org |
IPython Notebook layer
Description
This layer adds support for the package emacs-ipython-notebook
.
Do not hesitate to check the original package README here. Also the wiki has lots of informative stuff.
Features:
- Key bindings available through transient-state or leader key
- Lazy-loading
List of TODOS
This is a WIP, feel free to collaborate.
TODO Maybe it'd be better if there was a state for this
TODO
Make more key binding to connect
to a python buffer
TODO Deleting visual regions don't work, find out why
Install
Layer
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add ipython-notebook
to the existing dotspacemacs-configuration-layers
list
in this file.
Dependencies
Install IPython Notebook > 3
Note that IPython Notebook has now been renamed to Jupyter Notebook.
pip install jupyter
What needs to be run
Have an IPython notebook running
jupyter notebook
Using the IPython notebook
Open Notebook List
This layer is lazy loaded so the transient-state will only work after you summon the
command ein:notebooklist-open
which is bound to SPC a y o
or ein:run
which is
bound to SPC a y r
.
Key bindings
The key bindings can be used through a transient state or the usual evil-leader.
Transient-state: ipython-notebook
Once you are in the ipython notebook you can activate the transient-state with
SPC m .
The following table lists the keys. Use them as listed in the transient-state or
prefix with SPC m
to use with your evil-leader.
Key | Function |
---|---|
h |
ein:notebook-worksheet-open-prev-or-last |
j |
ein:worksheet-goto-next-input |
k |
ein:worksheet-goto-prev-input |
l |
ein:notebook-worksheet-open-next-or-first |
H |
ein:notebook-worksheet-move-prev |
J |
ein:worksheet-move-cell-down |
K |
ein:worksheet-move-cell-up |
L |
ein:notebook-worksheet-move-next |
t |
ein:worksheet-toggle-output |
d |
ein:worksheet-kill-cell |
R |
ein:worksheet-rename-sheet |
y |
ein:worksheet-copy-cell |
p |
ein:worksheet-yank-cell |
i |
ein:worksheet-insert-cell-below |
I |
ein:worksheet-insert-cell-above |
u |
ein:worksheet-change-cell-type |
RET |
ein:worksheet-execute-cell-and-goto-next |
C-l |
ein:worksheet-clear-output |
C-S-l |
ein:worksheet-clear-all-output |
C-o |
ein:console-open |
C-k |
ein:worksheet-merge-cell |
C-j |
spacemacs/ein:worksheet-merge-cell-next |
s |
ein:worksheet-split-cell-at-point |
C-s |
ein:notebook-save-notebook-command |
C-r |
ein:notebook-rename-command |
1 |
ein:notebook-worksheet-open-1th |
2 |
ein:notebook-worksheet-open-2th |
3 |
ein:notebook-worksheet-open-3th |
4 |
ein:notebook-worksheet-open-4th |
5 |
ein:notebook-worksheet-open-5th |
6 |
ein:notebook-worksheet-open-6th |
7 |
ein:notebook-worksheet-open-7th |
8 |
ein:notebook-worksheet-open-8th |
9 |
ein:notebook-worksheet-open-last |
+ |
ein:notebook-worksheet-insert-next |
- |
ein:notebook-worksheet-delete |
x |
ein:notebook-close |
Normal mode
In normal mode the following key bindings are defined:
Key | Function |
---|---|
gj |
ein:worksheet-goto-next-input |
gk |
ein:worksheet-goto-prev-input |
C-RET |
ein:worksheet-execute-cell |
S-RET |
ein:worksheet-execute-cell-and-goto-next |
Also SPC f s
saves the notebook like you would a regular buffer.
Insert mode
In normal mode the following key bindings are defined:
Key | Function |
---|---|
C-RET |
ein:worksheet-execute-cell |
S-RET |
ein:worksheet-execute-cell-and-goto-next |
Traceback mode
In traceback mode the following key bindings are defined:
key | Function |
---|---|
RET |
ein:tb-jump-to-source-at-point-command |
n |
ein:tb-next-item |
p |
ein:tb-prev-item |
q |
bury-buffer |
Screenshots
Light
Dark
Bonus
If you want to have a matplotlibrc that looks good with a dark background try
using this matplotlibrc
. Plot background is always transparent by default so
it will look okay for most dark themes out there.