This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/ipython-notebook
justbur 9befd20a1a layers: Transition to new key bindings functions
Removes dependence on evil-leader centralizing control over the method
of key binding in core-keybindings.el
2015-11-21 18:22:51 +01:00
..
img Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
matplotlibrc Use + instead of ! for layer categories 2015-09-11 00:13:51 -04:00
packages.el layers: Transition to new key bindings functions 2015-11-21 18:22:51 +01:00
README.org Documentation update 2015-11-13 14:23:13 +01:00

IPython Notebook contribution layer for Spacemacs (WIP)

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

  • Keybindings available through micro-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 keybinding to connect to a python buffer.

TODO Deleting visual regions don't work, find out why.

Install

Layer

  (setq-default dotspacemacs-configuration-layers '(ipython-notebook))

Dependencies

Install IPython > 3

  pip install ipython

What needs to be run

Have an IPython notebook running

  ipython notebook

Using the IPython notebook

Open Notebook List

This layer is lazy loaded so the micro-state will only work after you summon the command ein:notebooklist-open which is bound to SPC a i n

Key Bindings

The key bindings can be used through a micro state or the usual evil-leader.

Micro-state: ipython-notebook

Once you are in the ipython notebook you can activate the micro-state with SPC e i n

The following table lists the keys. Use them as listed in the micro-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
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

/TakeV/spacemacs/media/commit/4df3f55206184e07f7bf946db53b363dc59682c1/layers/+lang/ipython-notebook/img/light.png

Dark

/TakeV/spacemacs/media/commit/4df3f55206184e07f7bf946db53b363dc59682c1/layers/+lang/ipython-notebook/img/dark.png

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.