2012-12-16 126 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