VSCode 自动更改调试控制台名称

Alo*_*rad 6 python visual-studio-code

当我使用 VSCode 调试器执行我的代码时,新控制台会以名称打开 Python Debug Console

在此处输入图片说明

我可以通过右键单击来手动更改控制台的名称

在此处输入图片说明

有没有办法编辑launch.json文件以自动更改控制台名称?

谢谢!

编辑:

此功能目前不可用,我在这里打开了一个问题

小智 11

只需使用

"consoleTitle": "your console title here"
Run Code Online (Sandbox Code Playgroud)

在您的launch.json文件中。

示例launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Django runserver",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "runserver",
                "0.0.0.0:8000",
            ],
            "django": true,
            "consoleTitle": "django"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我发现这里提到了https://github.com/microsoft/debugpy/issues/1178。我已经在 vscode 1.77.0 上验证了它,即使您在文本编辑器中收到警告,它仍然可以工作:

不允许使用属性 consoleTitle。


JΛY*_*ÐΞV 9


\n

获取动态 VS-Code 控制台名称

\n
\n

有些人可能认为这是 VSCode 支持的更高级配置之一。将您要求的功能添加到 _ V.S. 代码需要使用任务、输入、launch.json 挂钩和带有参数的 VSCode 命令。这比听起来要少,我为您编写了代码,这应该会有所帮助。它需要你做一些阅读,同样我也必须写一些 \xe2\x80\x94 “让我们开始吧!”

\n



\n

VS 代码目录

\n
\n

您需要做的第一件事是打开一个可以在其中使用调试器的项目,以便您可以测试构建的任务。我打印了一个文件树,然后将树复制并粘贴到此摘录下方。树虽然简单,但是简洁明了。确保您像在文件树中一样设置了 .vscode 目录,其中包括您的launch.json, settings.json&tasks.json配置文件。

\n
\n



\n
\n
旁注:我们不会在settings.json文件中执行任何操作,我只是想表明可以将其放在您的目录中。
\n
\n
        . \n        |\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 .vscode\n            \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 launch.json\n            \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings.json\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tasks.json        \n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n

使这一切成为可能的命令:workbench.action.terminal.rename

\n
\n

在幕后,这workbench.action.terminal.rename与右键单击控制台名称来重命名控制台没有什么不同,就像您在发布的照片​​中演示的那样。

\n



\n

创建任务

\n
\n

"./.vscode/tasks.json"现在打开文件;看下面的摘录,您将看到一个受保护的代码块,即为您提供所需内容的任务配置:“调试器运行时会更改的动态控制台名称。” 你应该花点时间看一下,它非常简单易懂。您可以随意将下面的 JSON 代码复制并粘贴到您的tasks.json文件中。

\n
\n

将下面的代码添加到您的"./.vscode/tasks.json"文件中

\n
    /__ @file ".../.vscode/tasks.json"  */\n\n\n    {\n        "version": "2.0.0", /* MAKE SURE THIS LINE IS EXACTLY THE SAME */\n\n        // TASK DEFINITIONS\n        "tasks": [\n            {\n                /* TASK_#1 */\n                "label": "task|renameConsolePre",\n                "command": "${input:renameConsolePre}"\n            },\n            {\n                /* TASK_#2 */\n                "label": "task|renameConsolePost",\n                "command": "${input:renameConsolePost}"\n            }\n        ],\n\n        // |> INPUT DEFINITIONS\n        "inputs": [\n            {\n                /* INPUT FOR TASK_#1 */\n                "id": "renameConsolePre",\n                "type": "command",\n                "command": "workbench.action.terminal.renameWithArg",\n                "args": {\n                    /* NAME OF CONSOLE WHEN DEBUGGER IS ACTIVE */\n                    "name": "Debugging Console" \n                }\n            },\n            {        \n                /* INPUT FOR TASK_#2 */\n                "id": "renameConsolePost",\n                "type": "command",\n                "command": "workbench.action.terminal.renameWithArg",\n                "args": {\n                    /* NAME OF CONSOLE WHEN DEBUGGER IS INACTIVE */\n                    "name": "BASH" \n                }\n            }\n        ]\n    }\n\n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n

上面的 JSON 文件的片段中有很多内容,可以进行讨论,并进行详细介绍,但是,为了节省时间,我将指出,我认为从该片段中获取的最重要的内容。显然我还没有谈论过inputs,现在可能是提及它们的最佳时机。

\n

数组的全部目的"inputs":[]是有一个可以定义变量引用的地方。因为你想向 vscode 添加动态,所以你将需要使用一个参数,如果没有输入,你将无法实现你在任务中使用的命令,因为你无法传递一个对此的论证。(页面底部是变量引用的链接,您应该检查一下)。

\n
\n
\n
\n

这是测试您的任务的好时机

\n

要测试文件中的任务是否"./.vscode/tasks.json"正常运行,您需要打开keybindings.json文件。

\n
\n
    \n
  • 按下[F1]按键。快速菜单应该会打开。
  • \n
  • 在快捷菜单中输入 “键盘快捷键”
  • \n
  • 快捷菜单应该为您提供2 个不同的 键盘快捷键供您选择。选择没有说默认的那个。
  • \n
  • 现在您应该位于~/.config/Code/User/keybindings.json文件中。
  • \n
\n
\n

如果您编写自己的键绑定,则可能不需要阅读上面的说明,并且您可能已经在文件中定义了多个键绑定keybindings.json。如果您没有定义自己的键绑定,那么该文件可能是空的。

\n
如果您定义自己的键绑定,请创建这样的键绑定,并将其分配给您选择的键。
\n
    {\n        "key": "",\n        "command": "workbench.action.tasks.runTask",\n        "args": "task|renameConsolePre",\n        "when": ""\n    },\n  \n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n
如果您从未向keybindings.json文件添加过键绑定,请将以下内容添加到文件中,并确保包含整个代码片段的数组括号是文件中最底层的块。键绑定.json
\n

file 接受一个数组,而不是您在 JSON 文件中看到的典型对象。

\n
    [\n        {\n            "key": "ctrl+shift+space ctrl+shift+space",\n            "command": "workbench.action.tasks.runTask",\n            "args": "task|renameConsolePre",\n            "when": ""\n        },\n    ]\n  \n
Run Code Online (Sandbox Code Playgroud)\n
\n

使用键绑定

\n
[CTRL]+[SHIFT] 在按住这两个键的同时,连续按两次空格 \xe2\x80\ x94
\n
\n

实际的按键绑定如下所示:[ctrl]+[shift]+[space] [ctrl]+[shift]+[space]

\n
\n

如果您正确创建了键绑定,并将上面代码片段中的代码的文件内容粘贴到位于正确目录中的正确文件中,则键绑定应触发控制台名称更改。如果名称没有更改,则说明您做错了什么。测试任务是否以这种方式工作的优点是,它比每次想要测试任务时都启动调试器要省事。这通常被认为是对为编辑器创建的任务进行故障排除和调试的更好方法之一。

\n
\n

启动点 JSON 配置

\n
{\n    "configurations": [\n        {\n            "args": ["--extensionDevelopmentPath=${workspaceFolder}"],\n            "name": "Launch Extension",\n            "outFiles": ["${workspaceFolder}/out/**/*.js"],\n            "request": "launch",\n            "type": "pwa-extensionHost",\n\n            /* "Pre-hook is assigned TASK #1" */   \n            "preLaunchTask": "task|renameConsolePre",\n\n            /* "Post-Hook is assigned TASK #2" */ \n            "postDebugTask": "task|renameConsolePost"\n        }\n    ]\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

好吧,所以我无法配置launch.json文件来调试你的程序,因为我不知道你调试什么程序/语言,但挂钩应该都是相同的。

\n

以下是钩子的名称和定义。这是code.visualstudio.com 文档 preLaunch 属性(挂钩)的定义

\n
\n
    \n
  • 预启动任务 - 要在调试会话开始之前启动任务,请将此属性设置为tasks.json(在工作区的 .vscode 文件夹中)中指定的任务的标签。或者,可以将其设置为 $

    \n
  • \n
  • 调试后任务 - 要在调试会话最后启动任务,请将此属性设置为tasks.json(在工作空间的 .vscode 文件夹中)中指定的任务名称。

    \n
  • \n
\n
\n

现在,如果您需要更多帮助,可以问我,我喜欢这种转换,所以请放心。如果可能的话,我们自己解决问题总是好的,所以如果您遇到困难,可以尝试以下一些参考:

\n
\n
\n

我在答案的不同部分都有链接,但我决定将所有链接放在一个位置,因此如果需要返回其中一个链接,可以很容易找到它们。前两个链接是来自同一基本 URL 的锚点,当您在配置 launch.json 文件时遇到问题时,它们非常有用。不仅仅是为了这个问题/答案的目的,而且它们总体上很有帮助。

\n
\n
\n
\n

“下面的链接显示了示例以及正确的 launch.json 配置的演示”

\n

VSCode 文档:启动配置

\n

(在) - https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

\n
\n
\n

“这是迄今为止列表中最好的资源,因为它确实详细介绍了每个 launch.json 属性。(非常有帮助!)

\n

launch.json 属性

\n

(在) - https://code.visualstudio.com/Docs/editor/debugging#_launchjson-attributes

\n
\n
\n

“此链接涵盖输入,以及当事件调用命令时如何将参数传递给命令,例如调试器启动时,以及使用挂钩来调用代码。)”

\n

输入以及任务中的输入如何工作

\n

(在) - https://code.visualstudio.com/docs/editor/variables-reference

\n
\n
\n\n

  • @JayDev https://github.com/microsoft/vscode/issues/128108 (3认同)