在 VSCode 中使用多个命令的快捷方式

Shi*_*uel 2 visual-studio-code

我有一个现有的快捷方式,可以最大化终端窗口,

{
        "key": "ctrl+`",
        "command": "workbench.action.toggleMaximizedPanel"
}
Run Code Online (Sandbox Code Playgroud)

我想在快捷方式中添加一个附加命令,以便在最大化时将焦点转移到终端窗口,并在最小化时将焦点移回编辑器窗口。这在 vscode 中可能吗?

Mar*_*ark 6

我认为您将不得不使用像multi-command这样的宏扩展来通过一个键绑定运行多个命令。安装多命令后,在 settings.json 中:

  "multiCommand.commands": [

  {
      "command": "multiCommand.toggleTerminalAndFocusTerminal",

      "sequence": [
        "workbench.action.toggleMaximizedPanel",
        "workbench.action.terminal.focus",
      ]
    },

    {
      "command": "multiCommand.toggleTerminalAndFocusEditor",

      "sequence": [
        "workbench.action.toggleMaximizedPanel",
        "workbench.action.focusActiveEditorGroup",
      ]
    }
],
Run Code Online (Sandbox Code Playgroud)

然后这些键绑定:

{
  "key": "ctrl+`",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.toggleTerminalAndFocusTerminal" },
  "when": "!terminalFocus"
},

{
  "key": "ctrl+`",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.toggleTerminalAndFocusEditor" },
  "when": "terminalFocus"
},
Run Code Online (Sandbox Code Playgroud)

所以相同的键绑定,Ctrl-backTick将根据终端是否有焦点触发两个命令之一 - 注意"when": "!terminalFocus"终端没有焦点时的含义。