如何在VSCode中为绑定快捷键的代码片段任务传参并触发多命令
如何用单个快捷键触发多个VS Code编辑器命令?
问题背景
我已配置好如下快捷键,可将选中文本包裹进tryCatch块并添加日志与错误报告:
{ "key": "cmd+t", "command": "editor.action.insertSnippet", "args": { "name": "TryCatch" } },
现在希望将该操作与其他编辑器命令(比如保存文件)关联,用单个快捷键触发。尝试在tasks.json中配置任务时遇到问题:无法像快捷键配置那样直接传递代码片段名称作为参数,触发任务时会提示用户输入,且找不到拦截任务执行并传递数据的方法:
{ "label": "insertSnippet", "command": "${command:editor.action.insertSnippet}", "args": [ // "${name:TryCatch}", ], },
请问如何设置单个快捷键以触发两个或更多编辑器内命令?注:需要的是编辑器内的命令/任务,而非终端或Shell命令,此前找到的方案均针对Shell。
可行解决方案(感谢@Mark)
无需使用宏或扩展,通过VS Code的任务依赖和输入配置即可实现:
1. tasks.json配置
{ "version": "2.0.0", "tasks": [ { "label": "insertTryCatchSnippet", "command": [ "workbench.action.tasks.runTask", "${input:tryCatchInput}" ] }, { "label": "save", "command": "${command:workbench.action.files.save}", }, { "label": "TryCatch", "dependsOrder": "sequence", "dependsOn": [ "insertTryCatchSnippet", "save", ], }, ], "inputs": [ { "id": "tryCatchInput", "type": "command", "command": "editor.action.insertSnippet", "args": { "name": "TryCatch" } } ] }
2. 快捷键配置
{ "key": "cmd+t", "command": "workbench.action.tasks.runTask", "args": "TryCatch" },
此配置会按顺序执行insertTryCatchSnippet(插入TryCatch代码块)和save(保存文件)两个命令,完美满足需求。
内容的提问来源于stack exchange,提问作者Huthaifa Muayyad
相关产品推荐
相关产品推荐

