作者:王聪明2011 | 来源:互联网 | 2024-11-13 16:57
许多全局工具可以在任何地方通过命令行调用,而特定于某个项目的命令则可以放在项目仓库中。然而,如果能够直接在常用的文本编辑器中添加自定义的外部命令,那么执行这些命令只需简单的快捷键即可,无需手动输入。
编写外部命令调用
由于调用的是外部工具,因此工具本身的编程语言并不重要,只要有合适的运行环境,任何命令都可以执行。以我在博客中使用的外部命令 mdmeta
为例,该工具已通过 mklink
命令链接到 /build
文件夹中。如果需要多人协作开发,可以使用 git-lfs
或 git-submodule
来管理项目的外部命令。关于 mklink
的使用方法,可以参考相关文档。
在 /build
文件夹中添加可执行脚本,例如:
dotnet build\mdmeta\mdmeta.dll wupdate --ignore-in-hour 6
在VSCode中使用外部命令
虽然可以通过VSCode内置的终端来使用外部命令,但这并没有带来太多便利。为了更好地集成,VSCode提供了Tasks机制,可以将命令与编辑器集成。关于Tasks的详细信息,可以查阅VSCode的官方文档:Tasks in Visual Studio Code。
具体来说,需要创建一个配置文件 /.vscode/tasks.json
。该文件包含一些默认内容,如果不确定如何开始编写,可以按 F1
,选择 Configure Task
,随便配置一个任务,然后根据需要进行修改。
以下是我定义的两个命令:
- Init Metadata
- Update Metadata
{
"version": "2.0.0",
"tasks": [
{
"label": "Init Metadata",
"type": "shell",
"command": "${workspaceRoot}\\build\\mdinit.ps1",
"problemMatcher": []
},
{
"label": "Update Metadata",
"type": "shell",
"command": "${workspaceRoot}\\build\\mdupdate.ps1",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
这两个命令分别用于初始化博客仓库和更新所有博客文章的YAML元数据。由于更新元数据是经常使用的命令,因此将其设置为编译类型的命令,并指定为默认命令("isDefault": true
),这样就可以通过 Ctrl+Shift+B
快捷键来执行。
使用快捷键执行外部命令
如果有多个命令或希望使用不同的快捷键,可以在任务中指定。例如,希望按下 Ctrl+U
时更新元数据,可以在任务中添加 "key": "ctrl+u"
:
{
"label": "Update Metadata",
"type": "shell",
"key": "ctrl+u",
"command": "${workspaceRoot}\\build\\mdupdate.ps1",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
参考资料