2014-10-31 37 views
4

我開始使用pudb進行Python調試。它出現的很好,我可以一步一步,並停止在與pudb.set_trace()一起放入代碼的斷點處。到現在爲止還挺好。我遇到的主要問題是:迷失在pudb命令行區域

如果我點擊^ X進入命令行窗格,我可以鍵入可執行文件行或變量名稱,例如運行交互式Python,但是最細微的錯字(或實驗搜索其他命令或請求幫助())將我置於無法從中恢復的狀態。即使Control-c(聲稱在https://docs.python.org/2/tutorial/appendix.html#tut-interac)只顯示爲「^ C」並且什麼都不做。例如,如果我輸入「help()」,它將打印一些Python(而不是pudb)幫助,以黃色重新顯示「help()」,然後我死在水中。 Backspace不會影響顯示的「help()」,^ H只會顯示爲caret + H - 直到我打回時,它似乎被作爲文字後空格附加到「help()」,因爲我可以使「幫助()」的一部分消失。 「幫助()」後,我可以輸入任何東西,但我總是得到:

SyntaxError: unexpected EOF while parsing 

其次是我所鍵入的重新顯示。我該如何「清除」這個狀態並回到正常的命令行,而不是退出我的終端程序?

在Mac OS X 10.9.5上使用終端,但我也可以嘗試Linux。

回答

2

您的描述並非指出pudb存在問題,而是指您正在使用的終端上Backspace行爲的問題。

請嘗試更改此行爲,以便發送正確的退格。這可能會有幫助:http://fredericiana.com/2006/10/16/fixing-backspace-and-delete-for-ssh-in-os-xs-terminalapp/

然後,你應該能夠通過'!'輸入pudb的全屏Python解釋器。並由Control-D離開。

Control-X可以訪問pudb界面中的「小型」Python命令行,您可以通過Control-X離開它。在這一個中,您還有三個其他快捷鍵可以讓您操作命令行:Control-V - 插入新行和Control-N/Control-P來瀏覽命令行歷史記錄。如果其中的任何一個都不起作用,終端對待這些快捷方式的方式就會成爲一個問題,而不是像pudb那樣。

+0

你說得對,它發送的是x7f而不是x08 - 我沒有想到這一點;顯然大多數工具並不在乎,但pudb的確如此。謝謝! – TextGeek 2014-11-10 14:31:41