在我的终端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-line
或python-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
我想看一些关于我执行的代码的反馈。有什么想法吗?
答案 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))))