178 lines
6.8 KiB
Org Mode
178 lines
6.8 KiB
Org Mode
#+TITLE: IPython Notebook layer
|
|
|
|
#+TAGS: layer|programming|util
|
|
|
|
* Table of Contents :TOC_5_gh:noexport:
|
|
- [[#description][Description]]
|
|
- [[#features][Features:]]
|
|
- [[#list-of-todos][List of TODOS]]
|
|
- [[#maybe-itd-be-better-if-there-was-a-state-for-this][Maybe it'd be better if there was a state for this]]
|
|
- [[#make-more-key-binding-to-connect-to-a-python-buffer][Make more key binding to =connect= to a python buffer]]
|
|
- [[#deleting-visual-regions-dont-work-find-out-why][Deleting visual regions don't work, find out why]]
|
|
- [[#install][Install]]
|
|
- [[#layer][Layer]]
|
|
- [[#choosing-a-backend][Choosing a backend]]
|
|
- [[#dependencies][Dependencies]]
|
|
- [[#what-needs-to-be-run][What needs to be run]]
|
|
- [[#using-the-ipython-notebook][Using the IPython notebook]]
|
|
- [[#open-notebook-list][Open Notebook List]]
|
|
- [[#key-bindings][Key bindings]]
|
|
- [[#transient-state-ipython-notebook][Transient-state: =ipython-notebook=]]
|
|
- [[#normal-mode][Normal mode]]
|
|
- [[#insert-mode][Insert mode]]
|
|
- [[#traceback-mode][Traceback mode]]
|
|
- [[#screenshots][Screenshots]]
|
|
- [[#light][Light]]
|
|
- [[#dark][Dark]]
|
|
- [[#bonus][Bonus]]
|
|
|
|
* Description
|
|
This layer adds support for the package =emacs-ipython-notebook=.
|
|
|
|
Do not hesitate to check the original package README [[https://github.com/millejoh/emacs-ipython-notebook][here]]. Also the wiki has
|
|
lots of informative stuff.
|
|
|
|
** Features:
|
|
- Key bindings available through transient-state or leader key
|
|
- Lazy-loading
|
|
- Auto-completion
|
|
|
|
* 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.
|
|
|
|
** Choosing a backend
|
|
To choose a default backend set the layer variable =ein-backend=:
|
|
|
|
#+BEGIN_SRC elisp
|
|
(ipython-notebook :variables ein-backend 'jupyter)
|
|
#+END_SRC
|
|
|
|
Currently only jupyter backend is available. If =ein-backend= is set to =jupyter=,
|
|
jupyter backend will be enabled, otherwise no backend will be enabled.
|
|
Jupyter backend currently only supports auto-completion features.
|
|
|
|
** Dependencies
|
|
Install IPython Notebook > 3
|
|
|
|
Note that IPython Notebook has now been renamed to [[https://jupyter.org/install][Jupyter Notebook]].
|
|
|
|
#+BEGIN_SRC sh
|
|
pip install jupyter
|
|
#+END_SRC
|
|
|
|
** What needs to be run
|
|
Have an IPython notebook running
|
|
|
|
#+BEGIN_SRC sh
|
|
jupyter notebook
|
|
#+END_SRC
|
|
|
|
* 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 t i o~ or =ein:run= which is
|
|
bound to ~SPC a t i 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
|
|
[[file:img/light.png]]
|
|
|
|
** Dark
|
|
[[file:img/dark.png]]
|
|
|
|
* Bonus
|
|
If you want to have a matplotlibrc that looks good with a dark background try
|
|
using [[https://gist.github.com/anonymous/80219c49cb674d01e6b5fab94e759f54][this]] =matplotlibrc=. Plot background is always transparent by default so
|
|
it will look okay for most dark themes out there.
|