Как открыть интерпретатор IPython в emacs?
Чтобы использовать IPython во время разработки Python в Emacs, я открываю терминал и набираю ipython
. Это не похоже на правильный способ сделать это.
Во-первых, мой буфер перечисляет этот буфер как *ansi-term*
, что путает, поскольку я часто заканчиваю несколькими терминалами, один из которых посвящен Python. Я также вижу, что я могу открыть интерпретатор python непосредственно с помощью M-x python-shell
. Похоже, что для IPython должен быть аналогичный вариант.
Есть ли лучший способ использовать интерпретатор IPython в Emacs?
Я использую Emacs 24 с Prelude.
Ответы
Ответ 1
Я не знаю, что такое Prelude, но если вы можете установить последнюю версию Emacs (например, Emacs с фабианским Python-режимом), вы можете использовать следующее, чтобы режим Python знал ваш предпочтительный выбор интерпретатора. Тогда вам просто нужно позвонить M-x run-python
.
(when (executable-find "ipython")
(setq python-shell-interpreter "ipython")
Ответ 2
UPD Подробные инструкции для новичков:
-
Скопируйте это:
(defun ipython ()
(interactive)
(term "/usr/bin/ipython"))
-
Попробуйте сначала запустить Emacs как emacs -q
с терминала.
-q
означает, что вы не загружаете настроенный код. Это означает, что в этом режиме
ваши emacs будут вести себя точно так же, как мои.
- Теперь вы должны быть на экране приветствия. Нажмите q.
- Теперь вы должны находиться в буфере
*scratch*
. Нажмите C-y для вставки
код, который вы скопировали из браузера.
- Поместите курсор в самый конец кода сразу после последней скобки.
- Нажмите C-j, чтобы оценить код. Появится имя
ipython
.
- Теперь вы можете выполнить эту команду как любой другой, например. M-x ipython.
- Если вы хотите, чтобы это изменение стало постоянным, добавьте код в свой
~/.emacs
.
Ответ 3
Я пробовал использовать abo-abo для запуска ipython внутри emacs. Его довольно гладкий способ сокращения функций оболочки внутри emacs. Тем не менее, вы теряете функциональность emacs, когда находитесь в оболочке (например, не можете M-x o
выйти из оболочки)
Вместо этого я лично считаю, что использование команды Emacs builtin shell (M-x shell
) намного лучше. Вы можете запускать ipython внутри встроенной оболочки Emacs и все еще иметь все функциональные возможности Emacs, которые все мы знаем и любим.
Ответ 4
Кажется, что немного поздно, однако у него была аналогичная проблема, хотелось, чтобы ipython был как интерпретатор python по умолчанию для моего emacs 24.x. Следующие работали как волшебство -
(require 'python)
(setq python-shell-interpreter "ipython")
(setq python-shell-interpreter-args "--pylab")
благодаря http://www.flannaghan.com/2013/08/29/ipython-emacs для сохранения моего дня и, надеюсь, вашего.
PS: кажется, что anaconda, предварительно установленная в вашей системе, помогает...
Ответ 5
Изменить: Упс, проект ниже - это вилка, а не официальный проект Prelude. Второй абзац здесь все еще стоит. Или вы можете попробовать развилку.
Похоже, что Prelude уже устанавливает интеграцию ipython. Возможно, ваш экземпляр устарел?
Если M-x run-python
не запускает ipython, попробуйте добавить (setq python-shell-interpreter "ipython")
в ваш файл инициализации (или просто оценить его) и снова запустить M-x run-python
. После быстрого теста без прелюдии это все, что необходимо.
Ответ 6
Для этого можно использовать расширение Emacs, называемое emacs-ipython.
https://github.com/burakbayramli/emacs-ipython
В буфере LaTeX (вы можете изменить это как любой буфер) между блоками кода с одним нажатием клавиши он отправляет код python в ядро ipython и отображает результаты в стеновом блоке внизу.