执行表达式并在Emacs python模式下打印其值

时间:2014-08-06 17:56:43

标签: emacs ipython python-mode

我使用Emacs python-mode和ipython作为我的IDE来编写python代码。 Python模式提供了一个很好的功能" py-execute-line"运行一行代码,并将其绑定到键#F;"。

所以对于以下代码:

cell = "Human" #  Move the cursor to this line and run it by pressing F7
print cell     #  Move the cursor to this line and run it by pressing F7

我可以在ipython缓冲区中打印输出。

In [80]: 
In [81]: Human

我想知道是否有更直接的方法来检查" cell"没有打印命令。像将光标移动到变量,按某个键,然后在ipython输出缓冲区中打印值。

cell = "Human" #  Move the cursor to this line and run it by pressing F7
cell = "Human" #  Move the cursor to "cell" and print its value by pressing ?? key or function

我尝试过函数(py-execute-expression-ipython),但是没有输出打印...

提前致谢!

3 个答案:

答案 0 :(得分:0)

不完全是您想要的,但您可以突出显示某个区域(按C-SPC激活标记并移动到该区域的另一侧),然后键入M-|以运行{{1 }}。然后只需键入shell-command-on-region即可在该区域上运行Python。

例如,选择以下两行:

python RET

然后输入message = "Hello, Stack Overflow!" print message 。 “你好,Stack Overflow!"将在屏幕底部显示为消息。您可以使用任何shell命令在任何模式下执行此操作。另见:Shell Commands

答案 1 :(得分:0)

可能会在

处考虑功能请求

https://bugs.launchpad.net/python-mode

答案 2 :(得分:0)

在不突出显示的情况下,我使用:

(defun python-eval-expression ()
  (interactive)
  (let ((py-command (read-string "Command: ")))
    (save-excursion
      (setq elpy-shell-echo-output t)
      (setq elpy-shell-echo-input t)
      (elpy-shell--with-maybe-echo (python-shell-send-string py-command)))))

应该易于调整以选择当前选择(如果存在)(使用