我开始使用pudb进行Python调试。它很好,我可以单步执行,它会在我用pudb.set_trace()放入代码的断点处停止。到现在为止还挺好。我遇到的主要问题是:
如果我点击^ X进入命令行窗格,我可以输入可执行行或变量名,比如运行交互式Python,但是最轻微的错字(或尝试搜索其他命令,或请求帮助()让我处于一种无法恢复的状态。甚至Control-c(如https://docs.python.org/2/tutorial/appendix.html#tut-interac所述)只是显示为" ^ C"什么都不做。
例如,如果我输入" help()",它会打印一些Python(而不是pudb)帮助,重新显示" help()"黄色,然后我死在水里。 Backspace不会影响" help()"显示了,并且^ H只显示为插入符+ H - 直到我点击返回,当它似乎被附加到" help()"作为文字退格,因为我可以参与" help()"消失。我可以在" help()"之后键入任何内容,但我总是得到:
SyntaxError: unexpected EOF while parsing
然后重新显示我输入的内容。我如何清除"退出正常的命令行,退出我的终端程序?
在Mac OS X 10.9.5上使用终端,虽然我也可以试用Linux。
答案 0 :(得分:4)
您的描述不是指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那样。