在pudb命令行区域迷失
我开始使用pudb来调试Python代码。它运行得很好,我可以逐步执行代码,并且在我用pudb.set_trace()设置的断点处停下来。一切都挺顺利的。但我遇到的主要问题是:
当我按下^X键进入命令行面板时,我可以输入可执行的代码行或变量名,就像在运行交互式Python一样。但是,只要我稍微打错一个字(或者尝试其他命令,或者请求帮助help()),就会陷入一种无法恢复的状态。即使是按Control-c(正如https://docs.python.org/2/tutorial/appendix.html#tut-interac中所说的那样)也只显示为"^C",并没有任何作用。
举个例子,如果我输入"help()",它会打印一些Python(而不是pudb)的帮助信息,然后把"help()"用黄色重新显示出来,这样我就完全无法继续了。退格键对显示的"help()"没有任何影响,而^H只会显示为插入符号加H——直到我按下回车键,这时它似乎会作为字面上的退格被附加到"help()"后面,因为我可以让"help()"的一部分或全部消失。我可以在"help()"后面输入任何内容,但我总是得到:
SyntaxError: unexpected EOF while parsing
然后又会重新显示我输入的内容。我该如何“清除”这种状态,回到正常的命令行,而不需要退出我的终端程序呢?
我在Mac OS X 10.9.5的终端上使用这个,不过我也可以尝试Linux。
1 个回答
你的描述其实不是说pudb有问题,而是你使用的终端在处理退格键时出现了问题。
请尝试调整一下这个设置,让退格键能够正常工作。这里有个链接可能对你有帮助:http://fredericiana.com/2006/10/16/fixing-backspace-and-delete-for-ssh-in-os-xs-terminalapp/
调整好后,你就可以通过输入'!'进入pudb的全屏Python解释器,想要退出的话可以按Control-D。
在pudb的界面里,你可以通过按Control-X来访问一个“简易”的Python命令行,退出同样也是Control-X。在这个命令行里,你还有三个其他的快捷键可以使用:Control-V可以插入新的一行,Control-N和Control-P可以用来浏览命令行历史。如果这些快捷键有任何一个不工作,那问题可能出在终端对这些快捷键的处理上,而不是pudb本身。