【问题标题】:How do I create custom terminal commands in VS Code and assign key bindings to these commands?如何在 VS Code 中创建自定义终端命令并将键绑定分配给这些命令?
【发布时间】:2021-08-07 07:04:39
【问题描述】:

请不要在未阅读的情况下标记为重复。真的无法在任何地方找到此信息。

我从事使用“Make”的项目。现在我必须在集成终端中键入每个 make 命令,例如“make all”、“make clean”等。我想要一些键盘快捷键来完成这项工作,类似于默认构建任务的快捷键。

我尝试了命令运行程序扩展,但它们对于如何制作这些自定义命令的信息也非常模糊。几天来一直在摆弄设置和键绑定 json 文件。我不是 Web 开发人员,所以对使用 json 文件开始并配置遵守默认模板的东西知之甚少。

我找到的都是默认模板

{
     key : " ",
    command : " "
}

尝试在 keybindings.json 文件上摆弄这个,但找不到我的命令。

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: visual-studio-code makefile vscode-settings vscode-tasks


    【解决方案1】:

    使用命令workbench.action.terminal.sendSequence 可以向终端发送文本

    一个例子key binding

    {
      "key": "ctrl+f5",  // or any other combo
      "command": "workbench.action.terminal.sendSequence",
      "args": { "text": "make all\u000D" }
    }
    

    确保终端在该命令起作用的目录下,或者在前面添加cd 命令,您可以use variables(感谢Mark 进行更正)。

    如果你定义了多个任务来做这些事情,你可以使用键绑定来执行任务

    {
      "key": "shift+f5",  // or any other combo
      "command": "workbench.action.tasks.runTask",
      "args": "Name_of_task"
    }
    

    在任务中你可以使用变量。

    【讨论】:

    • 您好,感谢您的回复。两种解决方案都有效。我更喜欢有任务的那个。只是一个简单的问题 - 只要我在 tasks.json 文件中具有该特定标签的任务,键绑定就可以在全球范围内工作,对吗?
    • @Luffy 是的,如果你有一个多根工作区,我不知道它是否能正常工作
    • 不确定你所说的“你不能使用变量”和sendSequence 命令是什么意思?你可以,所有这些:code.visualstudio.com/docs/editor/variables-reference
    • @Mark 你的意思是你可以在keybindings.json的键绑定中使用变量吗,键绑定页面和变量页面上都没有提到这一点
    • @rioV8 见code.visualstudio.com/docs/editor/…(不在键绑定的任何地方,仅适用于sendSequence 命令)。
    猜你喜欢
    • 2020-12-31
    • 2020-07-23
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多