use*_*809 5 terminal visual-studio-code
有没有一种方法可以使热键在终端中运行特定命令?说我想通过热键来编译我的TypeScript文件,而不是键入到终端“ tsc”或该命令的任何其他变体。(编辑:我知道可以在保存时重新编译TS,但问题仍然相同)
通常,您将建立一个构建或另一个任务或一个npm脚本,然后使用热键触发它。
还有另一种新方法可以将文本发送到终端。
例如,在您的键绑定中尝试以下操作:
{
"key": "ctrl+alt+u",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "node -v\u000D"
}
}
Run Code Online (Sandbox Code Playgroud)
或一个npm脚本:
{
"key": "ctrl+alt+u",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "npm run-script test\u000D"
}
}
Run Code Online (Sandbox Code Playgroud)
第一个将运行node -v命令(它\u000D是返回值,因此它将运行)。我还是建议在实际设置了一个构建任务,虽然,然后还有运行您的构建任务keychords: Ctrl- - 。shift B或npm脚本。
例如,如果要运行更复杂的脚本,请参见如何将任务绑定到键绑定或如何将外部命令键绑定。
编辑:从v1.32开始,您现在可以执行以下操作:
{
"key": "ctrl+shift+t",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "tsc '${file}'\u000D" }
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以在键盘绑定中将内置变量(如${file})与sendSequence命令一起使用。我用${file}单引号引起来,以防您的目录结构包含名称中带有空格的文件夹。而且\u000D是回报。
我不认为 vscode 默认可以做到这一点,但你可以尝试这个扩展。这对我有用。
https://marketplace.visualstudio.com/items?itemName=mkloubert.vs-script-commands
您可以使用VSCode来完成此tasks任务,然后将您的任务绑定到按键绑定。这种方法的缺点是您必须tasks.json在工作空间.vscode文件夹中有一个文件(不能是全局文件)。
这是我想在自定义GitHub远程中打开文件的示例:
// tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Open in remote",
"type": "shell",
"command": "open https://github.custom.com/org/repo/blob/master/${relativeFile}#L${lineNumber}"
}
]
}
// keybindings.json
{
"key": "ctrl+o",
"command": "workbench.action.tasks.runTask",
"args": "Open in remote"
},
Run Code Online (Sandbox Code Playgroud)
如果您感到好奇,可以使用以下一些VS Code变量:https : //code.visualstudio.com/docs/editor/variables-reference
这里有一个长期存在的问题,应该使它更容易执行而无需执行任务:https : //github.com/microsoft/vscode/issues/871
| 归档时间: |
|
| 查看次数: |
5840 次 |
| 最近记录: |