2014-01-15 7 views
4

Это проблема с множеством связанных вопросов, но ни один из них не подходит для меня. Мне нужно использовать IPython так же, как я использую M-xshell, но, конечно же, с завершением, связанным с python. Решение abo-abo в этом предыдущем вопросе How to open IPython interpreter in emacs? делает трюк. Тем не менее, он имеет вторичный эффект отключения привязки клавиш, когда я нахожусь в буфере IPython (т. Е. Я не могу, например, менять буферы с C-xo). Есть ли простой способ решить это?IPython on emacs блокирует привязки клавиш

код из предыдущего ответа:

(defun ipython() 
    (interactive) 
    (term "/usr/bin/ipython")) 
+0

, связанные с [Как я могу отвязать C-элементный от джедая: полный] (http://stackoverflow.com/q/21131372/ 1309352) –

+0

Я просто пробовал работать с 'emacs -q' и' Cx o'. Любые другие привязки клавиш не работают? –

+0

Я не знаю почему, но в моем случае никакая привязка ключей не работает ('C-x o',' C-x C-f', 'C-x k') даже запускает emacs с' emacs -q'. Минибуфер также не показывает никакой активности (т. Е. Не отображает «C-x», если я нажимаю так ...). EDIT: Если я завершаю процесс ipython (т. Е. Введите 'exit' в приглашение), привязки клавиш снова станут функциональными. – jmlorenzi

ответ

0

Просто чтобы дать вам представление о том, что это можно использовать M-хshell с IPython:

(let ((explicit-shell-file-name "/usr/bin/ipython")) 
    (shell)) 

Но теперь автодополнению не работает. Может быть, есть решение этого, я не уверен.

Я предпочитаю ansi-term до shell как-то. Кстати, вы знаете, что C-c C-j звонки term-line-mode в ansi-term? C-c C-k переключается на значение по умолчанию term-char-mode. В term-line-mode вы можете перемещаться вокруг буфера с помощью обычных навигационных привязок и т. Д.

+0

Я не знаю, если это то, что вы имели в виду, но я могу использовать C-c C-j для восстановления обычных привязок для оболочки ipython из вашего исходного ответа. Однако TAB-завершение не работает, когда в TAB-завершении «term-line-model» не работает. Лично я предпочитаю «Mx shell» и хотел бы, чтобы ipython-буфер работал именно так, но это хорошее решение для момент. – jmlorenzi

0

Возможно, попробуйте python-mode.el. M-x ipython RET должен сделать это, чем.

+0

Терминал ipython, который я получаю с python-mode.el, неправильно обрабатывает завершение TAB ... – jmlorenzi

0

код вы вывесили, но InstEd использование ANSI-термина:

(defun ipython() 
    (interactive) 
    (ansi-term "/usr/bin/ipython")) 
Смежные вопросы