迷失在 pudb 命令行区

Tex*_*eek 4 python 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()”,然后我就死在水里了。Backspace 不会影响显示的“help()”,并且 ^H 只是显示为脱字符 + H -- 直到我点击 return,当它似乎作为文字退格键附加到“help()”时,因为我可以使所有“帮助()”的一部分消失。我可以在“help()”之后输入任何内容,但我总是得到:

SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)

接着是重新显示我输入的内容。我如何“清除”这个状态并回到正常的命令行,而不是退出我的终端程序?

在 Mac OS X 10.9.5 上使用终端,不过我也可以尝试 Linux。

Bar*_*zGo 5

您的描述不是指向 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 的方式存在问题。