Настройка.emacs для использования интерпретатора IPython
Я новичок в lisp, и мне сложно настроить emacs для ipython. Часть моего файла.emacs выглядит так:
;; Python mode settings
(require 'python-mode)
(add-to-list 'load-path "~/.emacs.d/elpa/")
(let ((default-directory "~/.emacs.d/elpa/"))
(normal-top-level-add-to-load-path '("."))
(normal-top-level-add-subdirs-to-load-path))
(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py$\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
(require 'ipython)
я бегу emacs --debug -init
из окна командной строки и получите следующее сообщение об ошибке при запуске emacs:
Debugger entered--Lisp error: (wrong-type-argument listp "-i")
nconc("-i" ("-colors" "LightBG"))
eval-buffer(#<buffer *load*-610080> nil "c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" nil t) ; Reading at buffer position 9523
load-with-code-conversion("c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" "c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" nil t)
require(ipython)
Это может быть что-то, что должно быть очень очевидным, но не уверен, как это исправить, если честно. Было бы очень полезно, если бы вы указали мне правильное направление. Благодарю.
3 ответа
Кажется, вы используете python-mode из python-mode.el: Никаких специальных настроек для IPython не должно быть. Не требует ipython.el, он устарел.
Настройка py-shell-name
"ipython" сделает его оболочкой по умолчанию.Mx ipython
RET должен работать прямо из коробки, также отправляя материал командам ipython.
Для особых случаев переопределения значений по умолчанию загляните в README.org.
У меня есть следующее в моем init.el
сделать ipython интерпретатором Python по умолчанию:
(setq
python-shell-interpreter "ipython"
python-shell-interpreter-args ""
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")
Чтобы запустить переводчика, все, что вам нужно сделать, это позвонить run-python
,
Надеюсь это поможет!
Попробуйте изменить ipython
командная строка, как показано ниже:
(add-hook 'python-mode-hook
(lambda ()
;You can uncomment next lines
;(set (make-variable-buffer-local 'beginning-of-defun-function)
; 'py-beginning-of-def-or-class)
;(setq outline-regexp "def\\|class ")
;(setq tab-width 4)
;(define-key py-mode-map "\C-c4" 'uncomment-region )
;(outline-minor-mode 1)
;(linum-mode 1)
;Ipython settings sections
(require 'ipython)
(setq-default py-shell-name "ipython")
(setq-default py-which-bufname "IPython")
(setq py-python-command-args '("--colors=linux")) ;Command line for run iPython
))