##// END OF EJS Templates
catch KeyboardInterrupt in debug...
catch KeyboardInterrupt in debug avoids traceback for ^C in ipdb. also prevents KeyboardInterrupt from exiting debugger. Is this actually desirable?

File last commit:

r5450:251b2e57
r11712:769f9763
Show More
editors.txt
114 lines | 4.5 KiB | text/plain | TextLexer
Brian Granger
Major work on the documentation....
r2277 .. _editors:
====================
Editor configuration
====================
IPython can integrate with text editors in a number of different ways:
Thomas Kluyver
Update docs on editors.
r5450 * Editors (such as `(X)Emacs`_, vim_ and TextMate_) can
Brian Granger
Major work on the documentation....
r2277 send code to IPython for execution.
* IPython's ``%edit`` magic command can open an editor of choice to edit
a code block.
The %edit command (and its alias %ed) will invoke the editor set in your
environment as :envvar:`EDITOR`. If this variable is not set, it will default
to vi under Linux/Unix and to notepad under Windows. You may want to set this
variable properly and to a lightweight editor which doesn't take too long to
start (that is, something other than a new instance of Emacs). This way you
can edit multi-line code quickly and with the power of a real editor right
inside IPython.
Thomas Kluyver
Update docs on editors.
r5450 You can also control the editor by setting :attr:`TerminalInteractiveShell.editor`
in :file:`ipython_config.py`.
Brian Granger
Major work on the documentation....
r2277
TextMate
========
Currently, TextMate support in IPython is broken. It used to work well,
but the code has been moved to :mod:`IPython.quarantine` until it is updated.
Thomas Kluyver
Update docs on editors.
r5450 Vim
===
Brian Granger
Major work on the documentation....
r2277
Thomas Kluyver
Update docs on editors.
r5450 Paul Ivanov's `vim-ipython <https://github.com/ivanov/vim-ipython>`_ provides
powerful IPython integration for vim.
Brian Granger
Major work on the documentation....
r2277
.. _emacs:
(X)Emacs
========
If you are a dedicated Emacs user, and want to use Emacs when IPython's
``%edit`` magic command is called you should set up the Emacs server so that
new requests are handled by the original process. This means that almost no
time is spent in handling the request (assuming an Emacs process is already
running). For this to work, you need to set your EDITOR environment variable
to 'emacsclient'. The code below, supplied by Francois Pinard, can then be
used in your :file:`.emacs` file to enable the server::
(defvar server-buffer-clients)
(when (and (fboundp 'server-start) (string-equal (getenv "TERM") 'xterm))
(server-start)
(defun fp-kill-server-with-buffer-routine ()
(and server-buffer-clients (server-done)))
(add-hook 'kill-buffer-hook 'fp-kill-server-with-buffer-routine))
Thanks to the work of Alexander Schmolck and Prabhu Ramachandran,
currently (X)Emacs and IPython get along very well in other ways.
.. note::
You will need to use a recent enough version of :file:`python-mode.el`,
along with the file :file:`ipython.el`. You can check that the version you
have of :file:`python-mode.el` is new enough by either looking at the
revision number in the file itself, or asking for it in (X)Emacs via ``M-x
py-version``. Versions 4.68 and newer contain the necessary fixes for
proper IPython support.
The file :file:`ipython.el` is included with the IPython distribution, in the
directory :file:`docs/emacs`. Once you put these files in your Emacs path, all
you need in your :file:`.emacs` file is::
(require 'ipython)
This should give you full support for executing code snippets via
IPython, opening IPython as your Python shell via ``C-c !``, etc.
You can customize the arguments passed to the IPython instance at startup by
setting the ``py-python-command-args`` variable. For example, to start always
in ``pylab`` mode with hardcoded light-background colors, you can use::
(setq py-python-command-args '("-pylab" "-colors" "LightBG"))
If you happen to get garbage instead of colored prompts as described in
the previous section, you may need to set also in your :file:`.emacs` file::
(setq ansi-color-for-comint-mode t)
Notes on emacs support:
Thomas Kluyver
Update docs on editors.
r5450 .. This looks hopelessly out of date - can someone update it?
Brian Granger
Major work on the documentation....
r2277 * There is one caveat you should be aware of: you must start the IPython shell
before attempting to execute any code regions via ``C-c |``. Simply type
``C-c !`` to start IPython before passing any code regions to the
interpreter, and you shouldn't experience any problems. This is due to a bug
in Python itself, which has been fixed for Python 2.3, but exists as of
Python 2.2.2 (reported as SF bug [ 737947 ]).
* The (X)Emacs support is maintained by Alexander Schmolck, so all
comments/requests should be directed to him through the IPython mailing
lists.
* This code is still somewhat experimental so it's a bit rough around the
edges (although in practice, it works quite well).
* Be aware that if you customized ``py-python-command`` previously, this value
will override what :file:`ipython.el` does (because loading the customization
variables comes later).
Thomas Kluyver
Update docs on editors.
r5450 .. _`(X)Emacs`: http://www.gnu.org/software/emacs/
.. _TextMate: http://macromates.com/
.. _vim: http://www.vim.org/