获取动态 VS-Code 控制台名称
这可能被一些人认为是 VSCode 支持的更高级的配置之一。将您要求的功能添加到 _V.S.代码 将需要使用任务、输入、launch.json 钩子和带参数的 VSCode 命令。它的工作量比听起来要少,我为您编写了代码,这样应该会有所帮助。它需要你读一些东西,同样我也需要写一些东西——“开始吧!”
V.S.代码目录
您需要做的第一件事是打开一个可以在其中使用调试器的项目,以便测试您构建的任务。我打印了一个文件树,然后复制并粘贴此摘录下方的树。树很简单,但简洁明了。确保您的 .vscode 目录像文件树一样设置,其中包括您的 launch.json、settings.json 和 tasks.json 配置文件。
旁注:我们不会在 settings.json 文件中做任何事情,我只是想表明可以在您的目录中包含它。
.
|
└── .vscode
├── launch.json
├── settings.json
└── tasks.json
让一切成为可能的命令:workbench.action.terminal.rename
在后台,workbench.action.terminal.rename 与右键单击控制台名称以重命名控制台没有什么不同,就像您在发布的照片中展示的那样。
创建任务
现在打开"./.vscode/tasks.json" 文件;看下面这段摘录,你会看到一个受保护的代码块,这是给你想要的任务配置:“当调试器运行时会改变的动态控制台名称。”你应该花点时间仔细看一下,它非常直接且易于理解。闲暇时将下面的 JSON 代码复制并粘贴到您的 tasks.json 文件中。
将以下代码添加到您的 "./.vscode/tasks.json" 文件中
/__ @file ".../.vscode/tasks.json" */
{
"version": "2.0.0", /* MAKE SURE THIS LINE IS EXACTLY THE SAME */
// TASK DEFINITIONS
"tasks": [
{
/* TASK_#1 */
"label": "task|renameConsolePre",
"command": "${input:renameConsolePre}"
},
{
/* TASK_#2 */
"label": "task|renameConsolePost",
"command": "${input:renameConsolePost}"
}
],
// |> INPUT DEFINITIONS
"inputs": [
{
/* INPUT FOR TASK_#1 */
"id": "renameConsolePre",
"type": "command",
"command": "workbench.action.terminal.renameWithArg",
"args": {
/* NAME OF CONSOLE WHEN DEBUGGER IS ACTIVE */
"name": "Debugging Console"
}
},
{
/* INPUT FOR TASK_#2 */
"id": "renameConsolePost",
"type": "command",
"command": "workbench.action.terminal.renameWithArg",
"args": {
/* NAME OF CONSOLE WHEN DEBUGGER IS INACTIVE */
"name": "BASH"
}
}
]
}
上面的 JSON 文件的 sn-p 中有很多东西,可以讨论并详细介绍,但是,为了时间的缘故,我会指出,我的感觉是从那个sn-p中获取最重要的。显然我还没有谈到inputs,现在可能是提及它们的最佳时机。
"inputs":[] 数组的全部目的是有一个可以定义变量引用的地方。因为您想向 vscode 添加动态,您将需要使用参数,如果没有输入,您将无法实现您在任务中使用的命令,因为您无法将参数传递给它。 (页面底部是变量引用的链接,您应该检查一下)。
这是测试你的任务的好点
要测试您在 "./.vscode/tasks.json" 文件中的任务是否正常工作,您需要打开您的 keybindings.json 文件。
- 按下
[F1] 键。 快速菜单应该打开。
- 在快捷菜单中输入: “键盘快捷键”
- 快捷菜单应为您提供 2 种不同 键盘快捷键供您选择。选择不默认的那个。
- 现在您应该在
~/.config/Code/User/keybindings.json 文件中。
如果您编写自己的键绑定,则可能不需要阅读上述说明,并且您可能已经在您的
keybindings.json 文件。如果您没有定义自己的键绑定,则该文件可能为空。
如果您定义自己的键绑定,请创建这样的键绑定,并将其分配给您选择的键。
{
"key": "",
"command": "workbench.action.tasks.runTask",
"args": "task|renameConsolePre",
"when": ""
},
如果您从未在 keybindings.json 文件中添加键绑定,则将以下内容添加到文件中,并确保包含整个 code-sn-p 的数组括号位于底部文件中的最级别块。 keybindings.json
file 采用一个数组,而不是您在 JSON 文件中看到的典型对象。
[
{
"key": "ctrl+shift+space ctrl+shift+space",
"command": "workbench.action.tasks.runTask",
"args": "task|renameConsolePre",
"when": ""
},
]
使用键绑定
[CTRL]+[SHIFT] & 按住两个键的同时按两次空格键 - 背靠背。
实际的键绑定如下所示:[ctrl]+[shift]+[space] [ctrl]+[shift]+[space]
如果您正确地创建了键绑定,并且您将来自上述 sn-p 的代码的文件内容粘贴到位于正确目录中的正确文件中,那么键绑定应该会触发控制台的名称改变。如果名字没有改变,你做错了什么。测试您的任务是否以这种方式工作的优势在于,每次您想要测试您的任务时,它都比启动调试器要好得多。这通常被认为是解决和调试为编辑器创建的任务的更好方法之一。
启动点 JSON 配置
{
"configurations": [
{
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"name": "Launch Extension",
"outFiles": ["${workspaceFolder}/out/**/*.js"],
"request": "launch",
"type": "pwa-extensionHost",
/* "Pre-hook is assigned TASK #1" */
"preLaunchTask": "task|renameConsolePre",
/* "Post-Hook is assigned TASK #2" */
"postDebugTask": "task|renameConsolePost"
}
]
}
好的,所以我不能配置launch.json 文件来调试你的程序,因为我不知道你调试的是什么程序/语言,但是钩子应该都是一样的。
这里是钩子的名称和定义。这是code.visualstudio.com Documentation Definition of the preLaunch properties (hooks)
现在,如果您需要更多帮助,可以问我,我喜欢这种转换,所以请随意。如果可能的话,我们自己解决问题总是好的,所以如果你遇到困难,可以尝试以下参考:
我在答案的不同部分都有链接,但我决定将所有链接放在一个地方,以便在需要参考时很容易找到返回其中一个链接。前两个链接是来自同一基本 URL 的锚点,当您在配置 launch.json 文件时遇到问题时非常有用。不仅出于此问题/答案的目的,而且它们总体上很有帮助。
“下面的链接显示了正确的 launch.json 配置的示例和演示”
(AT) - https://code.visualstudio.com/docs/editor/debugging#_launch-configurations
“这是迄今为止列表中最好的资源,因为它确实详细介绍了每个 launch.json 属性。(非常有帮助!)”
(AT) - https://code.visualstudio.com/Docs/editor/debugging#_launchjson-attributes
“此链接涵盖了输入,以及当调试器启动时等事件调用命令时如何将参数传递给命令,并且您使用挂钩来调用您的代码。)” em>
(AT) - https://code.visualstudio.com/docs/editor/variables-reference