2012-12-16 133 views
2

我在Linux中使用gvim的相互作用与IPython的0.12。输出显示

我想看看我的显示*的.py脚本的输出在IPython的控制台,但我没有,如果我喜欢写东西

print sum([1,2 3]) 

我希望得到的结果显示在控制台管理的相应调整参数。

通常,其实我只得到消息显示在较低的vim中区域给出执行的输入号码(例如[2])。但是In [1]中的显示在Ipython konsole中不会改变。

感谢您的洞察力。

回答

1

我是IPython开发者之一,并且写了vim-ipython(从中使用ipy.vim)。

您所看到的行为仅仅是一个尚未在IPython中实现的所需功能:ipython控制台,ipython qtconsole和Web笔记本当前不打印它们未启动的活动。请参阅issue #1873关于此计划功能增强的讨论。

一旦您真的尝试在ipython的qtconsole中发送新命令,In[]提示符将会得到更新。

2

你说的听起来像是预期的结果,但我想我知道你要做什么。

您可以使用类似tmux的命令将命令发送到终端会话(使用send-keys)。所以你将有一个终端显示你的程序的输出,另一个终端显示你的程序的输出。 Vim会发送一个命令(沿着tmux send-keys "python your.program^M"的行)到另一个终端来运行你的脚本。

你拥有的另一个选择是让vim执行脚本,但将输出重定向到一个文件。 Vim会执行类似python yourscript.py > /tmp/out &的操作,而您的其他终端将运行tail -F /tmp/out,因此它会不断更新。

+0

感谢您的建议,实际上我发现在ipython shell中执行的%run file.py会产生预期的输出。 – user17375

+0

...无法编辑我以前的评论。 感谢您的建议,实际上我发现在ipython shell中执行%run file.py会产生预期的输出。现在我检查ipy.vim插件发现实际运行def run_this_file(): msg_id = send('run%s%s'%(run_flags,repr(vim.current.buffer.name),)) print_prompt (“In []:run%s%s”%(run_flags,repr(vim.current.buffer.name)),msg_id) 你看到这个函数的一个简单的调整吗?谢谢 – user17375