VSCode:调试开始时清除集成终端
Posted
技术标签:
【中文标题】VSCode:调试开始时清除集成终端【英文标题】:VSCode: clear integrated terminal when debug starts 【发布时间】:2019-10-30 08:52:51 【问题描述】:在launch.json 中使用"console": "integratedTerminal"
时,程序输出被重定向到集成终端。但是,在终止调试会话并启动另一个调试会话后,终端会被重新使用,这可能会很烦人。
我还没有找到让 VSCode 清除终端的方法——可以使用 clear: true
属性来 clear the panel in tasks.json,但这仅适用于构建任务等任务,但对调试面板没有影响.
非常感谢您的帮助。
提前致谢 -西蒙
【问题讨论】:
也想知道这个! 【参考方案1】:但这仅适用于构建任务等任务,但对调试面板没有影响。
“调试控制台”应该是每个会话的新文本。
如果您想将终端输出重定向到调试控制台,您可以为您的launch.json
文件使用以下属性:
internalConsoleOptions
控制何时打开内部调试控制台。
redirectOutput
"version": "0.2.0",
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "integratedTerminal",
"internalConsoleOptions": "openOnSessionStart",
"redirectOutput": true
]
这两个串联使用都会打开“调试控制台”而不是终端,并且只提供必要的输出;尽管如果您仍然需要它,它仍会发送到终端:
另一种选择是不完全不使用终端:
"version": "0.2.0",
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "internalConsole",
]
意思是,它根本不发送到(或使用)您的集成终端,只打开调试控制台,它不显示任何 cd
之类的语句或可执行开销,也没有以前的历史记录
快捷方式(绝对不是用户友好的):
终端:重新启动活动终端
CommandId:workbench.action.terminal.relaunch
终端:清除
CommandId:workbench.action.terminal.clear
这些选项不回答“如何在调试开始时清除终端”的问题,而是那些刚接触 vscode 的人可以考虑作为替代方案的选项。我不太确定他们觉得终端是否适合调试,因为我们有一个调试控制台和调试/运行面板。这可能很复杂的原因是扩展使用它们自己的输出通道进行调试。例如,python 使用与 Code Runner 完全不同的终端。 javascript 也一样,然后有原生支持。
【讨论】:
【参考方案2】:v1.55 中有一个新设置:
debug.terminal.clearBeforeReusing
一些调试扩展允许在 VS Code 的集成中启动调试对象 终端。为了保持集成终端的数量少,VS 如果终端没有被仍在运行的终端阻塞,代码会尝试重用终端 命令。这种方法的结果是先前的命令和 程序输出将在终端中保持可见,这有时是 令人困惑。
在此版本中,我们引入了一项新功能来自动清除 在开始新的调试会话之前集成终端。这 功能由新设置控制
debug.terminal.clearBeforeReusing
.
来自https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_55.md#new-setting-for-clearing-a-terminal-before-launching-a-debuggee
【讨论】:
【参考方案3】:您可以使用preLaunchTask
清除终端:
launch.json:
"version": "0.2.0",
"configurations": [
"type": "node",
"request": "launch",
"name": "Launch via NPM",
"preLaunchTask": "Clear terminal",
"runtimeVersion": "15.14.0",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "start"],
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
]
tasks.json:
"version": "2.0.0",
"tasks": [
"label": "Clear terminal",
"command": "echo $command:workbench.action.terminal.clear"
]
但有一个警告:它会清除活动终端。因此,如果您在完成任务后切换到不同的终端,这将清除该终端...我还没有找到针对特定终端窗口的方法,我认为这是不可能的。
【讨论】:
以上是关于VSCode:调试开始时清除集成终端的主要内容,如果未能解决你的问题,请参考以下文章
VSCode - 使用集成终端而不是调试控制台进行调试/启动
用vscode调试时,怎样配置才能使用集成的terminal而不是win的
开始调试会话时,MacOS 上的 VSCode LLDB 错误