Lig*_*tCC 3 python visual-studio-code vscode-debugger
在 Python 中调试时,在 VS Code 中,每次调试时都会创建一个新终端。代码只是每次都在终端窗口的下拉列表中添加一个终端。我必须手动删除每个终端,或者一段时间后删除一堆终端 - 否则代码最终会挂起。
是否有选项设置可以阻止这种情况?这是预期的行为还是缺陷?
更新:这是每次创建新调试终端时发生的情况的屏幕截图。这是终端窗口右侧的下拉菜单,您可以打开或使用它ctrl-`(坟墓键、未移位的波浪号或 ~ 键)。它显示了普通的bash终端,即每次运行脚本时都会重用的Python终端,但显示了 3 个Python 调试控制台窗口。每次调试时都会创建一个新的Python 调试控制台( F5)。所以我每次调试都需要进去手动删除一个Python调试控制台(点击右边的垃圾桶图标)。在我意识到它发生之前,这已经打开了 20 多个终端窗口。
Lig*_*tCC 12
终于在这个答案中看到了一个真正的解决方案(好吧,有点hacky)- 至少如果你使用 Git Bash 作为你的默认终端。
如果在调试配置中添加参数&&和exit,调试终端将在程序结束后自动退出。但是请注意,它会立即关闭终端以及其中的所有文本(您可能需要在脚本末尾添加“按任意键结束程序”,以便您有时间查看任何文本或类似内容)那)。
注意:这仍然是一个 hack 并且它并不总是有效 - 如果您点击调试器工具栏上的“重新启动”或“停止”按钮,它将快捷地使用此方法
该&&基本上是告诉Bash停下来和其他命令,然后再继续等待调试任务完成,然后exit将你的调试会话结束,其中关闭终端后执行。
您可以通过打开运行/调试配置来执行此操作,如下所示:
launch.json在编辑器窗口中显示相应的文件。args: ["&&", "exit"]如下所示的行,并确保在该行的末尾添加逗号!启动.json:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"args": ["&&", "exit"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
注意 1:该答案留下的评论表示"args": ["\n", "exit", "0"]如果这不起作用,您可能想尝试。这可能适用于不同的终端类型(Windows Cmd Prompt、PowerShell、不同的 Linux shell 等)。
注意2:如果需要添加其他参数,可以将它们作为字符串添加到列表中的“&&”参数之前。列表中较早位置的项目将成为您实际程序/脚本的参数。
经过一番搜索,我无法确定是否为每次调试启动一个新终端是预期行为,但有一个解决方法。
为Python设置调试配置:当前文件。在调试选项卡的顶部,单击齿轮图标以打开launch.json
注意: 下面的调试图标略有变化,现在调用此选项卡Run而不是Debug
在launch.json 中,将"console"设置从默认的更改"integratedTerminal"为"internalConsole",如下所示:
{ "version": "0.2.0",
"configurations": [
{ "name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "internalConsole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这将导致任何调试会话的所有输出只发生在调试控制台中,每个会话都会被清除和重用,而不是每个会话都生成一个新的集成终端。
我最终返回到集成终端以获取期望用户在控制台输入的脚本,因为调试控制台不允许用户输入。
在这种情况下,您只需要不断删除额外的调试会话 - 有点痛苦。
| 归档时间: |
|
| 查看次数: |
3110 次 |
| 最近记录: |