emacs交互式python shell显示没有反馈

时间:2017-05-22 17:57:56

标签: python emacs

在我的终端shell中,如果我只评估,例如3+3,我得到

Python 3.6.1 (default, May 21 2017, 04:38:38) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 3+3
6
>>> 

但是,使用emacs的交互式shell并在使用python-shell-send-linepython-shell-send-region评估代码时,我没有得到任何关于正在执行的代码的反馈(除非当然有一些{{1}涉及)。

print中我的相关配置就是这样:

.emacs

我不确定它是否相关,但即使我安装了(setq python-shell-interpreter "/opt/local/bin/python3.6" python-shell-interpreter-args "-i") (add-hook 'python-mode-hook 'anaconda-mode) (如图中所示),我也会收到此警告:

readline

enter image description here

我想看一些关于我执行的代码的反馈。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我使用以下绑定到 C-c C-c 。如果行不以一个YMMV开头,那么发送一个print语句就是一个简单的hack。

;; send current line, with prefix print result
(defun python--send-line (arg)
  (interactive "P")
  (if (not arg)
      (python-shell-send-region (line-beginning-position) (line-end-position))
    (save-excursion
      (beginning-of-line)
      (if (looking-at-p "\\s-*print")
          (python-shell-send-region (line-beginning-position)
                                    (line-end-position))
        (python-shell-send-string
         (concat "print(" (buffer-substring (line-beginning-position)
                                            (line-end-position))
                 ")")))))
  (display-buffer (process-buffer (python-shell-get-process))))