2014-12-09 10:43:04 -06:00
|
|
|
==============================================
|
2014-11-03 16:36:52 -06:00
|
|
|
EIN2 -- Emacs IPython 2.x Notebook |build-status|
|
2014-12-09 10:43:04 -06:00
|
|
|
==============================================
|
2012-08-16 10:58:02 +02:00
|
|
|
|
|
|
|
--- or **E**\ IN **I**\ s not only for **N**\ otebooks.
|
|
|
|
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2014-11-03 16:34:14 -06:00
|
|
|
.. note:: The code, so far, has been stable enough for day to day work, but
|
|
|
|
there are no guarantees for the safety for your notebook data. Please
|
|
|
|
make sure you backup, and backup often!
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2012-09-13 00:22:50 +02:00
|
|
|
.. |build-status|
|
2014-11-03 16:36:52 -06:00
|
|
|
image:: https://secure.travis-ci.org/millejoh/emacs-ipython-notebook.png
|
2012-09-19 01:32:57 +02:00
|
|
|
?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
|
|
|
|
|
|
|
|
|
2012-05-07 15:25:06 +02:00
|
|
|
Screenshot
|
|
|
|
==========
|
|
|
|
|
2012-07-01 19:20:00 +02:00
|
|
|
.. figure:: https://github.com/tkf/emacs-ipython-notebook/raw/data/screenshots/notebook_simple_plot.png
|
2012-05-07 15:25:06 +02:00
|
|
|
:alt: Plotting in Emacs IPython Notebook
|
|
|
|
|
2012-07-01 19:20:00 +02:00
|
|
|
See `more <https://github.com/tkf/emacs-ipython-notebook/wiki/Screenshots>`_!
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2012-05-15 02:08:24 +02:00
|
|
|
Features
|
|
|
|
========
|
|
|
|
|
2014-11-03 16:36:52 -06:00
|
|
|
Emacs IPython Notebook (EIN) provides a client for the IPython v2.x notebook and
|
|
|
|
an integrated REPL (like SLIME_) in Emacs. While EIN makes notebook editing
|
|
|
|
very powerful by allowing you to use any Emacs features, it also expose IPython
|
|
|
|
features such as code evaluation, object inspection and code completion to the
|
|
|
|
Emacs side. These features can be accessed anywhere in Emacs and improve Python
|
|
|
|
code editing and reading in Emacs.
|
2012-06-03 18:48:07 +02:00
|
|
|
|
|
|
|
.. _SLIME: http://common-lisp.net/project/slime/
|
|
|
|
|
|
|
|
Highlighted features:
|
|
|
|
|
2012-05-15 02:08:24 +02:00
|
|
|
* Copy/paste cells, even to/from different notebooks.
|
|
|
|
* Console integration: You can easily connect to kernel via console
|
|
|
|
application. This enables you to start debugging in the same
|
2012-06-11 05:28:10 +02:00
|
|
|
kernel. It is even possible to connect console over ssh.
|
2012-06-03 18:48:07 +02:00
|
|
|
* IPython kernel can be "connected" to any buffers. This enables you
|
|
|
|
to evaluate buffer/region using same kernel as notebook. Notebook
|
|
|
|
goodies such as tooltip help, help browser and code completion are
|
|
|
|
available in these buffers.
|
|
|
|
* Jump to definition (go to the definition by hitting ``M-.`` over an
|
|
|
|
object).
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-06-03 18:48:07 +02:00
|
|
|
Other notebook features:
|
2012-05-15 02:08:24 +02:00
|
|
|
|
|
|
|
* Inline images
|
2012-05-16 03:58:13 +02:00
|
|
|
* Auto/manual-completion
|
2012-05-16 05:46:22 +02:00
|
|
|
* Popup (tooltip) help
|
2012-05-15 02:08:24 +02:00
|
|
|
* Syntax highlighting in each cell types (Python/Markdown)
|
|
|
|
* Help browser (opens when executing ``function?``)
|
2012-06-11 05:28:10 +02:00
|
|
|
* Traceback viewer
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-06-14 10:30:47 +02:00
|
|
|
Links:
|
|
|
|
|
2012-07-01 19:20:00 +02:00
|
|
|
* `Online Documentation
|
|
|
|
<http://tkf.github.com/emacs-ipython-notebook/>`_
|
2012-08-24 00:03:42 +02:00
|
|
|
|
|
|
|
* `Wiki
|
|
|
|
<https://github.com/tkf/emacs-ipython-notebook/wiki>`_
|
|
|
|
|
|
|
|
+ `Screenshots
|
|
|
|
<https://github.com/tkf/emacs-ipython-notebook/wiki/Screenshots>`_
|
|
|
|
+ `Tips
|
|
|
|
<https://github.com/tkf/emacs-ipython-notebook/wiki/Tips>`_
|
|
|
|
|
2012-07-01 20:39:45 +02:00
|
|
|
* `Downloads
|
|
|
|
<https://github.com/tkf/emacs-ipython-notebook/tags>`_
|
2012-06-14 10:30:47 +02:00
|
|
|
* `Repository at GitHub
|
2014-11-03 16:36:52 -06:00
|
|
|
<https://github.com/millejoh/emacs-ipython-notebook>`_
|
2012-06-14 10:30:47 +02:00
|
|
|
* `Issue Tracker at GitHub
|
2014-11-03 16:36:52 -06:00
|
|
|
<https://github.com/millejoh/emacs-ipython-notebook/issues>`_
|
2012-06-14 10:30:47 +02:00
|
|
|
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-06-03 18:48:07 +02:00
|
|
|
Quick try
|
|
|
|
=========
|
|
|
|
|
|
|
|
This is a quick and clean way to try EIN separately from your Emacs
|
|
|
|
setting. If you want to try EIN but think preparing all the
|
|
|
|
requirements is too much, try this!::
|
|
|
|
|
2014-11-03 16:36:52 -06:00
|
|
|
git clone git://github.com/millejoh/emacs-ipython-notebook.git
|
2013-01-08 08:41:26 +01:00
|
|
|
cd emacs-ipython-notebook/
|
2012-09-28 01:23:30 +02:00
|
|
|
lisp/zeroein.el
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-09-28 01:23:30 +02:00
|
|
|
This will launch a new Emacs instance.
|
2012-06-14 10:30:47 +02:00
|
|
|
|
2012-09-28 01:23:30 +02:00
|
|
|
You can use environment variable ``EMACS`` to control Emacs executable
|
|
|
|
to use.::
|
|
|
|
|
|
|
|
EMACS=emacs-snapshot lisp/zeroein.el
|
2012-06-14 10:30:47 +02:00
|
|
|
|
2013-01-21 19:56:02 +01:00
|
|
|
The above command requires /bin/sh. If the above command does not work
|
2013-01-21 19:53:34 +01:00
|
|
|
(e.g., you are using MS Windows), try the following command::
|
|
|
|
|
|
|
|
emacs -Q -l lisp/zeroein.el
|
|
|
|
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-05-11 00:01:31 +02:00
|
|
|
Requirements
|
|
|
|
============
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2014-11-03 16:34:14 -06:00
|
|
|
* IPython_ 2.0 or higher.
|
2014-12-09 10:43:04 -06:00
|
|
|
* `websocket.el`_ 0.9
|
2013-01-10 23:14:13 +01:00
|
|
|
* `request.el`_ >= 0.2
|
2012-09-11 01:29:39 +02:00
|
|
|
* (optional) mumamo_ developmental version:
|
2012-05-11 00:01:31 +02:00
|
|
|
It will be automatically loaded when it is on the path.
|
|
|
|
The official way to setup path is to load nXhtml_.
|
|
|
|
* (optional) markdown-mode
|
|
|
|
* (optional) python-mode:
|
|
|
|
It should work with either python.el or python-mode.el.
|
2012-05-15 02:08:24 +02:00
|
|
|
Fabian Gallina's `python.el`_ is required to use
|
2012-08-16 15:53:09 +02:00
|
|
|
``ein:console-open`` command.
|
2012-05-16 03:58:13 +02:00
|
|
|
* (optional) `auto-complete.el`_
|
2012-05-17 16:20:53 +02:00
|
|
|
You need to configure subpackage ``ein-ac`` to enable
|
|
|
|
this feature.
|
2012-05-15 02:08:24 +02:00
|
|
|
* (optional) `smartrep.el`_:
|
|
|
|
This package enables you to omit typing prefix keys (e.g.,
|
|
|
|
``C-c C-n C-n C-n ...`` instead of ``C-c C-n C-c C-n C-c C-n ...``).
|
2012-05-17 16:20:53 +02:00
|
|
|
You need to configure subpackage ``ein-smartrep`` to enable
|
2012-05-15 02:08:24 +02:00
|
|
|
this feature.
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2012-06-14 17:52:22 +02:00
|
|
|
Also, EIN heavily relies on standard Emacs libraries including EWOC,
|
2012-12-17 19:39:07 +01:00
|
|
|
EIEIO and json.el. EIN is currently tested against Emacs 23.3 and 24.3.
|
|
|
|
It is known to work in Emacs 23.2, 24.1 and 24.2.
|
2012-05-11 00:01:31 +02:00
|
|
|
|
|
|
|
.. _IPython: http://ipython.org/
|
2012-05-07 15:25:06 +02:00
|
|
|
.. _websocket.el: https://github.com/ahyatt/emacs-websocket
|
2013-01-10 23:14:13 +01:00
|
|
|
.. _request.el: https://github.com/tkf/emacs-request
|
2012-05-07 15:25:06 +02:00
|
|
|
.. _mumamo: http://www.emacswiki.org/emacs/MuMaMo
|
|
|
|
.. _nXhtml: http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html
|
2012-05-15 02:08:24 +02:00
|
|
|
.. _python.el: https://github.com/fgallina/python.el
|
2012-05-16 03:58:13 +02:00
|
|
|
.. _auto-complete.el: http://cx4a.org/software/auto-complete/
|
2012-05-15 02:08:24 +02:00
|
|
|
.. _smartrep.el: https://github.com/myuhe/smartrep.el
|
2012-05-07 15:25:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
Usage
|
|
|
|
=====
|
|
|
|
|
|
|
|
1. Install module.
|
2012-06-14 10:30:47 +02:00
|
|
|
Put Emacs lisp ``ein*.el`` files and Python file ``ein.py`` in your
|
2012-08-23 23:36:23 +02:00
|
|
|
load path. See `online documentation`_ for more information.
|
2012-05-07 15:25:06 +02:00
|
|
|
|
|
|
|
2. Require module::
|
|
|
|
|
2014-12-09 10:42:39 -06:00
|
|
|
(require 'ein)
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2012-05-11 00:12:16 +02:00
|
|
|
3. Start `IPython notebook server`_.
|
2012-05-07 15:25:06 +02:00
|
|
|
|
2012-05-11 00:12:16 +02:00
|
|
|
4. Hit ``M-x ein:notebooklist-open`` to open notebook list.
|
|
|
|
|
|
|
|
.. _`IPython notebook server`:
|
|
|
|
http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html
|
2012-05-15 02:08:24 +02:00
|
|
|
|
|
|
|
|
2012-05-16 03:58:13 +02:00
|
|
|
Subpackages
|
|
|
|
-----------
|
|
|
|
|
2012-05-19 15:47:09 +02:00
|
|
|
Enable `auto-complete.el`_::
|
2012-05-16 03:58:13 +02:00
|
|
|
|
2012-05-19 15:47:09 +02:00
|
|
|
(setq ein:use-auto-complete t)
|
2012-05-16 06:11:31 +02:00
|
|
|
;; Or, to enable "superpack" (a little bit hacky improvements):
|
2012-05-19 15:47:09 +02:00
|
|
|
;; (setq ein:use-auto-complete-superpack t)
|
2012-05-16 03:58:13 +02:00
|
|
|
|
|
|
|
Enable `smartrep.el`_::
|
|
|
|
|
2012-05-19 15:47:09 +02:00
|
|
|
(setq ein:use-smartrep t)
|
2012-05-16 03:58:13 +02:00
|
|
|
|
|
|
|
|
2014-11-03 16:34:14 -06:00
|
|
|
Keybindings - Notebook
|
2012-06-03 18:48:07 +02:00
|
|
|
-------------------
|
2012-05-15 02:08:24 +02:00
|
|
|
|
2012-06-03 18:48:07 +02:00
|
|
|
.. (ein:dev-insert-mode-map "\\{ein:notebook-mode-map}")
|
2012-05-15 02:08:24 +02:00
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
key binding
|
|
|
|
--- -------
|
|
|
|
|
|
|
|
C-c Prefix Command
|
|
|
|
C-x Prefix Command
|
2012-05-17 16:22:09 +02:00
|
|
|
ESC Prefix Command
|
2012-08-16 10:59:47 +02:00
|
|
|
. ein:notebook-complete-dot
|
|
|
|
C-: ein:shared-output-eval-string
|
2012-08-23 23:29:03 +02:00
|
|
|
<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
|
2012-05-15 02:08:24 +02:00
|
|
|
|
|
|
|
C-x C-s ein:notebook-save-notebook-command
|
|
|
|
C-x C-w ein:notebook-rename-command
|
|
|
|
|
2012-08-23 23:29:03 +02:00
|
|
|
M-RET ein:worksheet-execute-cell-and-goto-next
|
2012-06-10 02:25:32 +02:00
|
|
|
M-, ein:pytools-jump-back-command
|
2012-06-03 18:48:07 +02:00
|
|
|
M-. ein:pytools-jump-to-source-command
|
2012-09-02 07:09:32 +02:00
|
|
|
M-n ein:worksheet-next-input-history
|
|
|
|
M-p ein:worksheet-previous-input-history
|
2012-05-17 16:22:09 +02:00
|
|
|
|
2012-08-23 23:29:03 +02:00
|
|
|
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: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
|
2012-08-16 15:53:09 +02:00
|
|
|
C-c C-o ein:console-open
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-p ein:worksheet-goto-prev-input
|
2012-06-14 12:29:15 +02:00
|
|
|
C-c C-q ein:notebook-kill-kernel-then-close-command
|
2012-05-22 01:09:33 +02:00
|
|
|
C-c C-r ein:notebook-restart-kernel-command
|
2012-08-23 23:29:03 +02:00
|
|
|
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
|
2012-08-26 18:16:53 +02:00
|
|
|
C-c C-v ein:worksheet-set-output-visibility-all
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-w ein:worksheet-copy-cell
|
2012-08-16 10:59:47 +02:00
|
|
|
C-c C-x ein:tb-show
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-y ein:worksheet-yank-cell
|
2012-05-15 02:08:24 +02:00
|
|
|
C-c C-z ein:notebook-kernel-interrupt-command
|
2012-05-15 02:30:27 +02:00
|
|
|
C-c ESC Prefix Command
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c ! ein:worksheet-rename-sheet
|
|
|
|
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 { ein:notebook-worksheet-open-prev-or-last
|
|
|
|
C-c } ein:notebook-worksheet-open-next-or-first
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-S-l ein:worksheet-clear-all-output
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c C-# ein:notebook-close
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-' ein:worksheet-turn-on-autoexec
|
2012-07-01 19:20:00 +02:00
|
|
|
C-c C-, ein:pytools-jump-back-command
|
|
|
|
C-c C-. ein:pytools-jump-to-source-command
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c C-/ ein:notebook-scratchsheet-open
|
2012-08-16 10:59:47 +02:00
|
|
|
C-c C-; ein:shared-output-show-code-cell-at-point
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c <down> ein:worksheet-move-cell-down
|
|
|
|
C-c <up> ein:worksheet-move-cell-up
|
2012-05-15 02:30:27 +02:00
|
|
|
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c M-+ ein:notebook-worksheet-insert-prev
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c M-w ein:worksheet-copy-cell
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c M-{ ein:notebook-worksheet-move-prev
|
|
|
|
C-c M-} ein:notebook-worksheet-move-next
|
2012-05-15 02:08:24 +02:00
|
|
|
|
|
|
|
.. // KEYS END //
|
2012-05-22 01:00:34 +02:00
|
|
|
|
|
|
|
|
2014-11-03 16:34:14 -06:00
|
|
|
Keybindings - Connect
|
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.
|
|
|
|
|
|
|
|
.. (ein:dev-insert-mode-map "\\{ein:connect-mode-map}")
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
key binding
|
|
|
|
--- -------
|
|
|
|
|
|
|
|
C-c Prefix Command
|
|
|
|
ESC Prefix Command
|
2012-08-23 23:29:03 +02:00
|
|
|
. ein:completer-dot-complete
|
2012-08-16 10:59:47 +02:00
|
|
|
C-: ein:shared-output-eval-string
|
2012-06-03 18:48:07 +02:00
|
|
|
|
2012-06-10 02:25:32 +02:00
|
|
|
M-, ein:pytools-jump-back-command
|
2012-06-03 18:48:07 +02:00
|
|
|
M-. ein:pytools-jump-to-source-command
|
|
|
|
|
2012-08-16 10:59:47 +02:00
|
|
|
C-c C-a ein:connect-toggle-autoexec
|
2012-06-10 02:25:32 +02:00
|
|
|
C-c C-c ein:connect-run-or-eval-buffer
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-f ein:pytools-request-tooltip-or-help
|
|
|
|
C-c TAB ein:completer-complete
|
2012-08-16 10:59:47 +02:00
|
|
|
C-c C-l ein:connect-reload-buffer
|
2012-08-23 23:29:03 +02:00
|
|
|
C-c C-o ein:console-open
|
2012-06-03 18:48:07 +02:00
|
|
|
C-c C-r ein:connect-eval-region
|
2012-08-16 10:59:47 +02:00
|
|
|
C-c C-x ein:tb-show
|
2012-06-03 18:48:07 +02:00
|
|
|
C-c C-z ein:connect-pop-to-notebook
|
2012-07-01 19:20:00 +02:00
|
|
|
C-c C-, ein:pytools-jump-back-command
|
|
|
|
C-c C-. ein:pytools-jump-to-source-command
|
2012-09-02 07:09:32 +02:00
|
|
|
C-c C-/ ein:notebook-scratchsheet-open
|
2012-06-03 18:48:07 +02:00
|
|
|
|
|
|
|
.. // KEYS END //
|
2012-07-02 16:10:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
License
|
|
|
|
=======
|
|
|
|
|
|
|
|
Emacs IPython Notebook is licensed under GPL v3.
|
|
|
|
See COPYING for details.
|