5

我开始使用 pudb 进行 Python 调试。它运行良好,我可以单步执行,它在我使用 pudb.set_trace() 放入代码的断点处停止。到目前为止,一切都很好。我遇到的主要问题是:

如果我按 ^X 进入命令行窗格,我可以键入可执行行或变量名,例如运行交互式 Python,但最轻微的拼写错误(或尝试搜索其他命令,或请求帮助())会让我失望处于我无法恢复的状态。甚至 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。

4

1 回答 1

5

您的描述不是指向 pudb 的问题,而是指向您正在使用的终端上 Backspace 行为的问题。

请尝试更改此行为,以便发送正确的退格键。这可能会有所帮助: http: //fredericiana.com/2006/10/16/fixing-backspace-and-delete-for-ssh-in-os-xs-terminalapp/

然后,你应该可以通过'!'进入pudb的全屏Python解释器。并通过 Control-D 离开它。

pudb 界面中的“小型”Python 命令行可以通过 Control-X 访问,您可以通过 Control-X 离开它。在这一个中,您还有其他三个快捷方式也可以让您操作命令行: Control-V - 插入新行和 Control-N/Control-P 以浏览命令行历史记录。如果其中任何一个不起作用,那么终端处理这些快捷方式的方式而不是 pudb 的方式是一个问题。

于 2014-11-08T00:46:31.230 回答