Как открыть интерпретатор 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 и отображает результаты в стеновом блоке внизу.