我尝试在编辑python脚本时键入C-c C-p,在emacs上启动ipython控制台。但是ipython控制台看起来很空白。虽然当我键入一些命令时会有一个输出,并显示Out提示符。此外,当我退出()时,会显示许多In()提示符。为什么会这样?
我正在使用emacs versiion 24.3,ipython 2.1.0和python 2.7.6。以下是我的init.el
;;; To start emacs maximized at startup
(w32-send-sys-command 61488)
;;; To remove the toolbar from emacs
(tool-bar-mode 0)
;;; IDO configuration
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)
;;; Add MELPA repository
(require 'package)
(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
;;; Configure Aspell
(add-to-list 'exec-path "C:/Program Files (x86)/Aspell/bin/")
; Tell emacs to use Aspell and provide the location of custom dictionary
(setq ispell-program-name "aspell")
(setq ispell-personal-dictionary "C:/emacs/.emacs.d/my_dict/my_dict.ispell")
; Turn it on
(require 'ispell)
;;; Flyspell configuration
(add-to-list 'load-path "~/.emacs.d/flyspell")
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
(autoload 'flyspell-delay-command "flyspell" "Delay on command." t)
(autoload 'tex-mode-flyspell-verify "flyspell" "" t)
(add-hook 'LaTeX-mode-hook 'flyspell-mode) ; Auto-start flyspell with LaTeX
;;; Enable auto-complete mode
(require 'auto-complete)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
(require 'auto-complete-config)
(ac-config-default)
(global-auto-revert-mode t)
;;; RefTex configuration
(require 'reftex)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(add-hook 'latex-mode-hook 'turn-on-reftex)
;;; Activate code folding in AUCTeX
(add-hook 'LaTeX-mode-hook (lambda ()
(TeX-fold-mode 1)))
;;; Setup jedi
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)
;;; Pair braces and quotes automatically (autopair)
(require 'autopair)
(autopair-global-mode) ;; Enable autopair in all buffers
;; (setq py-install-directory "~/.emacs.d/python-mode.el-6.1.3")
;; (add-to-list 'load-path py-install-directory)
;; (require 'python-mode)
(require 'python)
(setq python-shell-interpreter "ipython")
(setq python-shell-interpreter-args "--pylab")
答案 0 :(得分:2)
我对python.el代码不够熟悉,给你一个很好的答案,但如果你看一下python.el的开头("评论:"部分),你会看到它谈论如何使用Ipython。这就是说,它存在各种问题。即将推出的24.4中的python.el代码显着改善了Ipython支持,因此它并不需要所有配置并且实际上可以工作(据说)。由于24.4非常接近发布,我们正在寻找可以帮助我们摆脱最后几个错误的人,所以如果你可以尝试最新的预测试(24.3.94)来看看是否真的很棒解决您的问题,如果没有,请执行M-x report-emacs-bug
,以便我们可以在发布之前修复它。
答案 1 :(得分:2)
我在Windows上遇到了与Emacs 24.3.1相同的问题,我的所有问题最终都是通过将ipython进程转换为子进程来解决的(我尝试了所有我可以从"评论"部分到no有用 - 也许肖恩确切地知道他改变了什么修复它?)。你在混合中得到了一个额外的python进程,但我在代码缓冲区和python缓冲区之间没有任何控制问题。来自我的.emacs:
(setq
python-shell-interpreter "C:\Python27\\python.exe"
python-shell-interpreter-args "-u -c \"import subprocess; subprocess.call('ipython')\""
python-shell-prompt-regexp "In \\[[0-9]+\\]: "
python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: "
python-shell-completion-setup-code
"from IPython.core.completerlib import module_completion"
python-shell-completion-module-string-code
"';'.join(module_completion('''%s'''))\n"
python-shell-completion-string-code
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n")