Обновление : на вопрос все еще не найден удовлетворительный ответ.
Я хотел бы «отправить» фрагменты кода интерпретатору IPython в Emacs 23.2 (Linux).Предполагая, что я уже запустил оболочку IPython в буфере в Emacs (например, используя Python-mode.el
и IPython.el
), есть ли способ выбрать область в другом буфере и «отправить» эту область на уже запущенный IPythonshell?
Я пробовал C-c C-c
(send-buffer-to-shell) и C-c |
(send-region-to-shell), но это работает только до тех пор, пока коднаписано на Python, а не на IPython (IPython может выполнять код Python).Причина в том, что для обеих команд Emacs создает временный файл с расширением .py
(в отличие от расширения .ipy
), который затем интерпретируется IPython как "Python-специфичный код".Это мешает мне использовать специфичные для IPython функции, такие как магические команды.
В отдельной заметке я также прочитал, что Emacs предоставляет M-| ('shell-command-on-region')
для запуска выбранных областей в оболочке.Чтобы сделать это с помощью интерпретатора IPython, я попытался установить shell-file-name
для моего пути IPython.Однако, когда я запускаю M-|
после выбора региона, Emacs запрашивает у меня следующее:
Команда оболочки для региона:
и, если я наберу RET
Я получаю справочную страницу IPython в буфере *Shell Command Output*
без выполнения региона.Есть ли какая-нибудь специфичная для IPython команда, которую я могу использовать для M-| ('shell-command-on-region')
, чтобы заставить IPython запустить мой код?
Спасибо!