我经常想快速重新运行我使用的最后一个 shell 命令。
我知道您可以将焦点转移到终端,向上箭头并输入,但我认为必须有比这三个步骤更好的方法。
sendSequencevscode 中的命令变得越来越强大,所以我寻找一种方法来创建一个可以快速运行最后一个 shell 命令的键绑定。
从键绑定发送文本
该
workbench.action.terminal.sendSequence命令可用于向终端发送特定的文本序列,包括转义序列。这可以实现诸如发送箭头键、输入、光标移动等功能。下面的示例显示了您可以使用此功能实现的各种功能,它会跳过光标左侧的单词(Ctrl+向左箭头)并按下退格键:
{
"key": "ctrl+u",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[1;5D\u007f" }
}
Run Code Online (Sandbox Code Playgroud)
此功能支持变量替换。
请注意,该命令仅适用于
\u0000通过字符代码(而不是\x00)使用字符的格式。
请参阅终端支持变量替换:
{
"key": "ctrl+shift+t",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": ". ${file}" }
}
Run Code Online (Sandbox Code Playgroud)
例如,请参阅终端中的运行文件:
{
"key": "ctrl+shift+t",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "node '${file}'\u000D" }
}
Run Code Online (Sandbox Code Playgroud)