No description
Find a file
John Miller 7da1f156eb Automate dpi scaling a bit.
You still need to import matplotlib first, but after doing that if you call
`ein:pytools-matplotlib-api-correction' then ein will try to automatically
adjust the figure dpi to something appropriate for the current display. Setting
up the appropriate hooks to get all this to happen automatically upon opening a
notebook is left as an exercise to the user.
2019-11-28 20:37:51 -07:00
_images Hard to have a mascot without an image of said mascot.. 2017-07-12 15:52:09 -05:00
doc Add commands to execute all cells above/below current one 2019-11-10 15:40:32 +01:00
features New commands for setting matplotlib configuration. 2019-11-28 20:37:51 -07:00
lisp Automate dpi scaling a bit. 2019-11-28 20:37:51 -07:00
log Travis fails if there is no log directory. 2016-12-18 14:31:53 -06:00
ltxpng What a waste of a commit. 2017-03-04 21:07:52 -06:00
test Closes #580 2019-08-13 08:04:47 -04:00
tools Issue 608 jedi completion (#609) 2019-10-28 20:28:37 -06:00
.appveyor.yml Shutting down 2019-08-07 17:01:11 -04:00
.buildinfo Demo notebook for generating screenshots. 2015-05-19 06:41:34 -05:00
.gitignore Standardize metadata a bit 2019-05-25 11:31:05 -04:00
.travis.yml Issue 608 jedi completion (#609) 2019-10-28 20:28:37 -06:00
Cask Merge branch 'master' into pdenno-clojure 2019-11-17 12:30:58 -06:00
CONTRIBUTING.md Update CONTRIBUTING.md 2019-10-24 07:16:09 -06:00
COPYING Copy full GPLv3 from GNU website 2012-07-02 16:03:02 +02:00
Demo.ipynb ein-completer: Robuster oinfo 2018-11-05 17:05:38 -06:00
Development Ideas.ipynb Robustly build oinfo cache. 2018-11-01 20:26:42 -05:00
EIN_Manual.org Appveyor iterating (WIP) (#573) 2019-07-28 18:20:13 -06:00
Makefile Better consistency with kernel connections in anonymous ob-ein blocks. (#624) 2019-11-27 08:59:52 -07:00
org_demo.org Add ob-ein tests 2019-02-19 10:06:15 -05:00
README.in.rst Clarification of readme [skip ci] 2019-08-13 19:14:41 -04:00
README.rst change README.rst [skip ci] 2019-08-13 19:17:04 -04:00
tasks.py Appveyor iterating (WIP) (#573) 2019-07-28 18:20:13 -06:00
test_requirements.txt Appveyor iterating (WIP) (#573) 2019-07-28 18:20:13 -06:00
The Emacs IPython Notebook.ipynb Files from JupyterCon. 2018-10-14 22:29:53 -05:00

========================================================================
 EIN -- Emacs IPython Notebook |build-status| |melpa-dev| |melpa-stable|
========================================================================

  --- or **E**\ IN **I**\ s not only for pytho\ **N**\ .

Emacs IPython Notebook (EIN) lets you run Jupyter (formerly IPython)
notebooks within Emacs.  It channels all the power of Emacs without the
idiosyncrasies of in-browser editing.

Org_ users please find ob-ein_, a jupyter Babel_ backend.

EIN was originally written by `[tkf]`_.  A jupyter Babel_ backend was first
introduced by `[gregsexton]`_.

.. |build-status|
   image:: https://secure.travis-ci.org/millejoh/emacs-ipython-notebook.png?branch=master
   :target: http://travis-ci.org/millejoh/emacs-ipython-notebook
   :alt: Build Status
.. |melpa-dev|
   image:: http://melpa.milkbox.net/packages/ein-badge.svg
   :target: http://melpa.milkbox.net/#/ein
   :alt: MELPA development version
.. |melpa-stable|
   image:: http://melpa-stable.milkbox.net/packages/ein-badge.svg
   :target: http://melpa-stable.milkbox.net/#/ein
   :alt: MELPA stable version
.. _Jupyter: http://jupyter.org
.. _Babel: https://orgmode.org/worg/org-contrib/babel/intro.html
.. _Org: https://orgmode.org
.. _[tkf]: http://tkf.github.io
.. _[gregsexton]: https://github.com/gregsexton/ob-ipython

Install
=======
Install from MELPA_ (recommended) or ``make install`` from github source.

Usage
=====
Start EIN using **one** of the following:

- Open an ``.ipynb`` file normally in emacs and press ``C-c C-o``, or,
- ``M-x ein:run`` launches a jupyter process from emacs, or,
- ``M-x ein:login`` to a running jupyter server

Use ``C-u M-x ein:login`` for services such as ``mybinder.org`` requiring cookie authentication.

Alternatively, ob-ein_.

.. _Cask: https://cask.readthedocs.io/en/latest/guide/installation.html
.. _MELPA: http://melpa.org/#/

Reporting bugs
--------------
EIN is tested on GNU Emacs versions
25.1
and later.  We presently do not recommend the `spacemacs layer`_.

**Please file issues using** ``M-x ein:dev-bug-report-template``.

You may also try to self-diagnose.

First invoke ``M-x ein:dev-start-debug``.  Then reproduce the error.

General logging ``M-x ein:log-pop-to-all-buffer``.

Notebook server ``M-x ein:log-pop-to-request-buffer``.

Kernel messaging (must be run from notebook buffer) ``M-x ein:dev-pop-to-debug-channels``.

.. _spacemacs layer: https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/ipython-notebook
.. _auto-complete: https://github.com/auto-complete/auto-complete
.. _company-mode: https://github.com/company-mode/company-mode
.. _jupyterhub: https://github.com/jupyterhub/jupyterhub

I want to use Elpy, ESS, julia-mode
========================================
Enable `polymode`_ via::

   M-x customize-group RET ein
   Toggle Ein:Polymode

ob-ein
======
Configuration:

::

   M-x customize-group RET org-babel
   Org Babel Load Languages:
     Insert (ein . t)
     For example, '((emacs-lisp . t) (ein . t))

Snippet:

::

   #BEGIN_SRC ein-python :session localhost :results raw drawer
     import numpy, math, matplotlib.pyplot as plt
     %matplotlib inline
     x = numpy.linspace(0, 2*math.pi)
     plt.plot(x, numpy.sin(x))
   #+END_SRC

The ``:session`` is the notebook url, e.g., ``http://localhost:8888/my.ipynb``, or simply ``localhost``, in which case org evaluates anonymously.  A port may also be specified, e.g., ``localhost:8889``.

*Language* can be ``ein-python``, ``ein-r``, or ``ein-julia``.  **The relevant** `jupyter kernel`_ **must be installed before use**.  Additional languages can be configured via::

   M-x customize-group RET ein
   Ob Ein Languages

.. _polymode: https://github.com/polymode/polymode
.. _ob-ipython: https://github.com/gregsexton/ob-ipython
.. _scimax: https://github.com/jkitchin/scimax
.. _ob-ein details: http://millejoh.github.io/emacs-ipython-notebook/#org-mode-integration
.. _jupyter kernel: https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

Connected Buffers
=================
Use ``M-x ein:connect-to-notebook`` to submit code from an arbitrary buffer to a running jupyter kernel.  See `connected buffer details`_.

.. _connected buffer details: http://millejoh.github.io/emacs-ipython-notebook/#connected-buffer

Keymap (C-h m)
==============

::

   key             binding
   ---             -------
   
   C-c		Prefix Command
   C-x		Prefix Command
   ESC		Prefix Command
   C-:		ein:shared-output-eval-string
   <C-down>	ein:worksheet-goto-next-input
   <C-up>		ein:worksheet-goto-prev-input
   <M-S-return>	ein:worksheet-execute-cell-and-insert-below
   <M-down>	ein:worksheet-move-cell-down
   <M-up>		ein:worksheet-move-cell-up
   
   C-x C-s		ein:notebook-save-notebook-command
   C-x C-w		ein:notebook-rename-command
   
   M-RET		ein:worksheet-execute-cell-and-goto-next
   M-,		ein:pytools-jump-back-command
   M-.		ein:pytools-jump-to-source-command
   M-n		ein:worksheet-next-input-history
   M-p		ein:worksheet-previous-input-history
   
   C-c C-a		ein:worksheet-insert-cell-above
   C-c C-b		ein:worksheet-insert-cell-below
   C-c C-c		ein:worksheet-execute-cell
   C-c C-e		ein:worksheet-toggle-output
   C-c C-f		ein:file-open
   C-c C-h		ein:pytools-request-tooltip-or-help
   C-c TAB		ein:completer-complete
   C-c C-k		ein:worksheet-kill-cell
   C-c C-l		ein:worksheet-clear-output
   C-c RET		ein:worksheet-merge-cell
   C-c C-n		ein:worksheet-goto-next-input
   C-c C-o		ein:notebook-open
   C-c C-p		ein:worksheet-goto-prev-input
   C-c C-q		ein:notebook-kill-kernel-then-close-command
   C-c C-r		ein:notebook-reconnect-session-command
   C-c C-s		ein:worksheet-split-cell-at-point
   C-c C-t		ein:worksheet-toggle-cell-type
   C-c C-u		ein:worksheet-change-cell-type
   C-c C-v		ein:worksheet-set-output-visibility-all
   C-c C-w		ein:worksheet-copy-cell
   C-c C-x		Prefix Command
   C-c C-y		ein:worksheet-yank-cell
   C-c C-z		ein:notebook-kernel-interrupt-command
   C-c ESC		Prefix Command
   C-c !		ein:worksheet-rename-sheet
   C-c '		ein:edit-cell-contents
   C-c +		ein:notebook-worksheet-insert-next
   C-c -		ein:notebook-worksheet-delete
   C-c 1		ein:notebook-worksheet-open-1th
   C-c 2		ein:notebook-worksheet-open-2th
   C-c 3		ein:notebook-worksheet-open-3th
   C-c 4		ein:notebook-worksheet-open-4th
   C-c 5		ein:notebook-worksheet-open-5th
   C-c 6		ein:notebook-worksheet-open-6th
   C-c 7		ein:notebook-worksheet-open-7th
   C-c 8		ein:notebook-worksheet-open-8th
   C-c 9		ein:notebook-worksheet-open-last
   C-c S		ein:worksheet-toggle-slide-type
   C-c i		ein:inspect-object
   C-c {		ein:notebook-worksheet-open-prev-or-last
   C-c }		ein:notebook-worksheet-open-next-or-first
   C-c C-S-l	ein:worksheet-clear-all-output
   C-c C-#		ein:notebook-close
   C-c C-$		ein:tb-show
   C-c C-'		ein:worksheet-turn-on-autoexec
   C-c C-,		ein:pytools-jump-back-command
   C-c C-.		ein:pytools-jump-to-source-command
   C-c C-/		ein:notebook-scratchsheet-open
   C-c C-;		ein:shared-output-show-code-cell-at-point
   C-c <down>	ein:worksheet-move-cell-down
   C-c <up>	ein:worksheet-move-cell-up
   
   C-c C-x C-l	ein:notebook-toggle-latex-fragment
   C-c C-x C-r	ein:notebook-restart-session-command
   
   C-c M-+		ein:notebook-worksheet-insert-prev
   C-c M-w		ein:worksheet-copy-cell
   C-c M-{		ein:notebook-worksheet-move-prev
   C-c M-}		ein:notebook-worksheet-move-next

Links
=====
* `Complete documentation <http://millejoh.github.io/emacs-ipython-notebook/>`_

* `Wiki <https://github.com/millejoh/emacs-ipython-notebook/wiki>`_

  + `Screenshots <https://github.com/millejoh/emacs-ipython-notebook/wiki/Screenshots>`_
  + `Tips <https://github.com/millejoh/emacs-ipython-notebook/wiki/Tips>`_

License
=======
Emacs IPython Notebook is licensed under GPL v3.
See COPYING for details.