我可以在VS代码中保存文件时自动执行两个单独的命令吗?
我希望这两个命令执行以下操作:
1.格式化焦点中的文档
2.对导入的文档进行排序
发布于 2021-06-20 20:38:40
对在保存(onSave)上运行任务或命令没有默认支持。然而,有第三方支持通过VSCode扩展“运行在保存”。
下面是链接:https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave
这是一个非常流行的扩展,我偶尔会使用它,它在我的用例中运行得很好。
此外,如果您只想链接,或格式化代码,在保存,这可以通过VSCode设置。
编辑6月20日9:04
如果要将该命令添加到您的设置中,则必须配置扩展,扩展README.md中对此进行了解释,可以通过单击VSCode扩展资源管理器中的扩展图标来查看该扩展。
配置
将"emeraldwalk.runonsave“配置添加到用户或工作区设置中。
注意,因为这是一个Regex,而且在JSON字符串中,反斜杠必须双转义,比如targetting文件夹。例如“匹配”:“一些\\文件夹\\.*”
- "cmd" - command to run. Can include parameters that will be replaced at runtime (see Placeholder Tokens section below).
- "isAsync" (optional) - defaults to false. If true, next command will be run before this one finishes.
样本Config
此示例配置将运行echo语句,包括保存的文件路径。在这个示例中,第一个命令是异步的,所以即使第一个命令尚未完成,第二个命令也会立即执行。由于第二个命令不是异步的,所以第三个命令在第二个命令完成之前不会执行。
"emeraldwalk.runonsave": {
"commands": [
{
"match": ".*",
"isAsync": true,
"cmd": "echo 'I run for all files.'"
},
{
"match": "\\.txt$",
"cmd": "echo 'I am a .txt file ${file}.'"
},
{
"match": "\\.js$",
"cmd": "echo 'I am a .js file ${file}.'"
},
{
"match": ".*",
"cmd": "echo 'I am ${env.USERNAME}.'"
}
]
}
在保存时配置要执行的命令不会像点击F1来打开快速输入和查找要运行的扩展任务那样简单。你必须遵循说明,当你陷入困境时,你可能会回来问一个关于你正在经历的问题的问题,或者谷歌它;如果你是一个Linux用户,或者你有很多MS或Powershell体验,这将是非常直接的。
发布于 2021-06-21 17:02:56
正如我在评论中指出的,有许多“在保存上运行”扩展。这里有一个将运行外部命令的命令,比如来自扩展名的命令。而且,它似乎比一些国家更新、更好地加以维护。
样本设置:
"runItOn": {
"commands": [
{
"match": ".*",
"isShellCommand" : false,
"cmd": "myExtension.amazingCommand"
},
{
"match": "\\.txt$",
"cmd": "echo 'Executed in the terminal: I am a .txt file ${file}.'"
}
],
"watchers": [
{
"match": "**/*.js",
"cmd": "echo 'Changes detected on js files.'"
}
]
}
myExtension.amazingCommand
是你要找的东西。
发布于 2021-11-24 11:59:07
如果只需要格式化代码,请检查激活的本机编辑器设置,而不是安装RunOnSave。
https://stackoverflow.com/questions/68059778
复制相似问题