Как настроить emacs для работы с ipython

Я использую ubuntu 14.04, emacs 24.3.1, python 2.7.6, ipython 1.2.1, python-mode 6.1.3. Ipython хорошо работает в emacs уже как минимум год, однако две недели назад у меня возникла следующая проблема.

  1. используйте с-с! чтобы запустить интерпретатор по умолчанию, ipython показывает, как я и надеялся, но вместо разделения кадра и отображения в другом окне он появляется в исходном окне кода. (это небольшая проблема)
  2. используйте C-c| для выполнения региона запускается интерпретатор python, и код отправляется интерпретатору python вместо интерпретатора ipython

Я искал на SO, но эта проблема кажется слишком новой, чтобы найти ответ. Я погуглил, нашел эту страницу https://answers.launchpad.net/python-mode/+question/250905, пробовал способы там, все равно не работает... Может ли кто-нибудь помочь мне решить проблему? Большое спасибо!

Моя часть .emacs python выглядит так

    (require 'python-mode)
    (setq-default py-shell-name "ipython")
    (setq-default py-which-bufname "IPython")
    ; switch to the interpreter after executing code
    (setq py-shell-switch-buffers-on-execute-p t)
    (setq py-switch-buffers-on-execute-p t)
    ; don't split windows
    (setq py-split-windows-on-execute-p nil)

person calbear    schedule 01.10.2014    source источник


Ответы (1)


Чтобы разделить окно

(setq py-split-windows-on-execute-p t)

нужен, соотв. сброс по умолчанию - последняя строка в примере. Возможно, проверьте настройки с помощью настройки M-x ... также, что может конфликтовать с setq из инициализации.

При выборе оболочки для выполнения: шебанг в буфере может переопределить значение по умолчанию py-shell-name. Когда shebang следует игнорировать, используйте

(setq py-force-py-shell-name-p t)

См. меню

Python/Настройка/Переключатели/Интерпретатор

для простого способа изменить это значение во время текущего сеанса.

person Andreas Röhler    schedule 01.10.2014
comment
Большое спасибо, Андреас! (setq py-force-py-shell-name-p t) работает! Но когда (setq py-split-windows-on-execute-p t) текущее окно кода продолжает разбиваться до тех пор, пока не останется четыре окна, тогда я вспоминаю, почему я установил его на ноль... В любом случае, я попытаюсь настроить больше. Еще один вопрос: есть ли способ узнать, какой вариант py-* что делает, кроме чтения python-mode.el? - person calbear; 03.10.2014
comment
@calbear Вы можете проверить текущий ствол: ветка bzr lp:python-mode. Ошибка lp:1361531 еще не решена, однако некоторые улучшения возможны. - person Andreas Röhler; 05.10.2014