2016-09-24 14:30:01 -05:00
========================================================================
EIN -- Emacs IPython Notebook |build-status| |melpa-dev| |melpa-stable|
========================================================================
2012-08-16 10:58:02 +02:00
--- or **E** \ IN **I** \ s not only for **N** \ otebooks.
2018-11-28 22:09:43 -05:00
Emacs IPython Notebook (EIN) lets you edit and run Jupyter_ (formerly IPython) notebooks within Emacs. It channels all the power of Emacs without the idiosyncrasies of in-browser editing.
2012-05-07 15:25:06 +02:00
2018-11-28 22:09:43 -05:00
EIN was originally written by tkf_. More `complete documentation`_ is available.
2017-06-13 09:33:13 -04:00
2012-09-13 00:22:50 +02:00
.. |build-status|
2015-05-27 07:10:52 -05:00
image:: https://secure.travis-ci.org/millejoh/emacs-ipython-notebook.png?branch=master
2014-11-03 16:36:52 -06:00
:target: http://travis-ci.org/millejoh/emacs-ipython-notebook
2012-09-13 00:22:50 +02:00
:alt: Build Status
2016-09-24 14:23:30 -05:00
.. |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
2017-10-23 12:09:15 -05:00
.. _Jupyter: http://jupyter.org
2018-11-28 22:09:43 -05:00
.. _tkf: https://tkf.github.io/emacs-ipython-notebook
.. _`complete documentation`: http://millejoh.github.io/emacs-ipython-notebook
2012-09-13 00:22:50 +02:00
2018-11-28 22:09:43 -05:00
Install
=======
Install from MELPA_ (recommended) or `` make install `` from github source. You will need to install Cask_ for the latter. See the `online documentation`__ for more information.
2015-08-20 20:28:28 -05:00
2018-11-28 22:09:43 -05:00
Usage
=====
Launch a local session
----------------------
2018-12-03 10:57:29 -05:00
`` M-x ein:jupyter-server-start `` (aliased `` M-x ein:run `` ) launches a jupyter process from emacs.
2016-12-22 21:30:25 -06:00
2018-11-28 22:09:43 -05:00
Login to a local or remote session
----------------------------------
`` M-x ein:notebooklist-login `` (aliased `` M-x ein:login `` ) to a running jupyter server.
2012-05-07 15:25:06 +02:00
2018-11-28 22:09:43 -05:00
Jupyter services relayed over HTTP such as `` mybinder.org `` and `` coursera.org `` require cookie authentication. In these instances you need to issue `` C-u M-x ein:login `` to be prompted for cookie information. See the `Wiki`_ for more information.
2012-05-15 02:08:24 +02:00
2018-11-28 22:09:43 -05:00
Open a notebook file
--------------------
Open an `` .ipynb `` file and press `` C-c C-z `` .
2012-06-03 18:48:07 +02:00
2018-11-28 22:09:43 -05:00
.. _Cask: https://cask.readthedocs.io/en/latest/guide/installation.html
.. _MELPA: http://melpa.org/#/
__ `complete documentation`_
2012-06-03 18:48:07 +02:00
2018-11-28 22:09:43 -05:00
Highlighted Features
====================
2012-06-03 18:48:07 +02:00
2012-05-15 02:08:24 +02:00
* Copy/paste cells, even to/from different notebooks.
2014-12-17 08:19:51 -06:00
* Console integration: You can easily connect to a kernel via the console
application. This enables you to start debugging in the same kernel. It is
even possible to connect to a console over ssh.
* An IPython kernel can be "connected" to any buffer. This enables you to
evaluate a buffer or buffer region using the same kernel as the notebook.
Notebook goodies such as tooltip help, help browser and code completion are
2012-06-03 18:48:07 +02:00
available in these buffers.
2014-12-17 08:19:51 -06:00
* Jump to definition (go to the definition by hitting `` M-. `` over an object).
2018-11-28 22:09:43 -05:00
* Projectile-like file navigation via `` C-c C-o `` .
* Limited JupyterHub support.
2012-05-15 02:08:24 +02:00
2018-11-28 22:09:43 -05:00
Org-mode Integration
====================
2012-05-15 02:08:24 +02:00
2018-11-28 22:09:43 -05:00
EIN now integrates_ with org-mode! The code was heavily inspired by ob-ipython_
which is another project very much worth checking out. Find it on MELPA_.
2012-05-16 03:58:13 +02:00
2018-11-28 22:09:43 -05:00
.. _integrates: http://millejoh.github.io/emacs-ipython-notebook/#org-mode-integration
.. _ob-ipython: https://github.com/gregsexton/ob-ipython/
2012-05-16 03:58:13 +02:00
2018-11-28 22:09:43 -05:00
Screenshots
===========
2012-05-16 03:58:13 +02:00
2018-11-28 22:09:43 -05:00
.. figure :: https://github.com/millejoh/emacs-ipython-notebook/wiki/images/demo_plotnormal.PNG
:alt: Plotting in Emacs IPython Notebook
2012-05-16 03:58:13 +02:00
2018-11-28 22:09:43 -05:00
.. figure :: https://github.com/millejoh/emacs-ipython-notebook/wiki/images/R-kernel-example.PNG
:alt: EIN connecting to an R kernel
2012-05-16 03:58:13 +02:00
2018-11-28 22:09:43 -05:00
See `more <https://github.com/millejoh/emacs-ipython-notebook/wiki/Screenshots> `_ !
2012-05-16 03:58:13 +02:00
2014-11-03 16:34:14 -06:00
Keybindings - Notebook
2016-12-23 11:02:18 -06:00
----------------------
2012-05-15 02:08:24 +02:00
::
key binding
--- -------
2018-11-28 22:09:43 -05:00
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-d ein:worksheet-toggle-slide-type
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-slideshow-view
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
2012-05-22 01:00:34 +02:00
2014-11-03 16:34:14 -06:00
Keybindings - Connect
2016-12-22 21:30:25 -06:00
---------------------
2012-06-03 18:48:07 +02:00
In Python (or any other) buffer, you can connect to any open notebook
by `` M-x ein:connect-to-notebook `` then choose appropriate notebook.
After connecting to the notebook (and hence its kernel), the following
commands are available.
::
key binding
--- -------
2018-11-28 22:09:43 -05:00
C-c Prefix Command
ESC Prefix Command
C-: ein:shared-output-eval-string
M-, ein:pytools-jump-back-command
M-. ein:pytools-jump-to-source-command
C-c C-a ein:connect-toggle-autoexec
C-c C-c ein:connect-run-or-eval-buffer
C-c C-h ein:pytools-request-tooltip-or-help
C-c TAB ein:completer-complete
C-c C-l ein:connect-reload-buffer
C-c C-o ein:console-open
C-c C-r ein:connect-eval-region
C-c C-x ein:tb-show
C-c C-z ein:connect-pop-to-notebook
C-c C-, ein:pytools-jump-back-command
C-c C-. ein:pytools-jump-to-source-command
C-c C-/ ein:notebook-scratchsheet-open
Links
=====
2012-06-03 18:48:07 +02:00
2018-11-28 22:09:43 -05:00
* `Online Documentation
<http://millejoh.github.io/emacs-ipython-notebook/>`_
* `Wiki
<https://github.com/millejoh/emacs-ipython-notebook/wiki>`_
2012-07-02 16:10:22 +02:00
2018-11-28 22:09:43 -05:00
+ `Screenshots
<https://github.com/millejoh/emacs-ipython-notebook/wiki/Screenshots>`_
+ `Tips
<https://github.com/millejoh/emacs-ipython-notebook/wiki/Tips>`_
2012-07-02 16:10:22 +02:00
License
=======
Emacs IPython Notebook is licensed under GPL v3.
See COPYING for details.