问题
我经常做的一个操作是在编辑器上突出显示/选择代码,然后将其粘贴到集成终端上以执行它。虽然我使用Ctrl + c
,Ctrl + backtick
,Ctrl + Shift + v
和Enter
的速度非常快,但它非常烦人和重复。有没有办法为此配置宏或快捷方式?
解决方案(失败)尝试
这个Github线程和这个StackOverflow问题展示了如何创建一个快捷方式来在不同的集成终端之间切换。我希望在我的情况下发生类似的事情(我在下面的示例中使用了Ctrl + Shift + u
),例如:
[
{
"key" : "ctrl+shift+k",
"command" : "workbench.action.terminal.focusNext"
},
{
"key" : "ctrl+shift+j",
"command" : "workbench.action.terminal.focusPrevious"
},
{
"key" : "ctrl+shift+u",
"command" : "ctrl+c+ctrl+`+ctrl+shift+v+enter"
},
]
没有 VS 代码扩展
有一个命令:workbench.action.terminal.runSelectedText
它已经执行了您想要的操作,并且默认情况下不绑定到任何键和弦。
[只是为了查看sendSequence
命令]:
如果您不走其他路线,此键绑定将在终端中运行所选文本:
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "${selectedText}u000D"
}
},
u000D
是回归。
** [由菲利普添加]
:::使用 VS 代码扩展(宏序列配置)
VS Code 目前不允许连接快捷方式,因此,如果要在集成终端上执行代码并专注于它,则必须安装宏扩展。
为此有几种选择。但是,建议使用多命令(不要像宏那样追求第一个结果,其中一些已经过时了)。
要创建上述快捷方式,请在settings.json
文件中创建一系列命令:
"multiCommand.commands": [ // Copy Paste to the Integrated Terminal and also Focus on it
{
"command": "multiCommand.copyPasteTerminalAndFocus",
"sequence": [
{
"command" : "workbench.action.terminal.sendSequence",
"args" : {"text" : "${selectedText}u000D"}
},
"workbench.action.terminal.focus"
]
},
]
然后在keybindings.json
文件中为其创建快捷方式:
{
"key": "alt+y",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.copyPasteTerminalAndFocus" }
},