如果侧边栏打开,是否有 VSCode 动作来关闭侧边栏,否则什么都不做?

Is there a VSCode action to close the sidebar if open, otherwise do nothing?

有一个名为 workbench.action.closePanel 的操作完全符合您的想象;如果它打开,它会关闭 VSCode 中的面板,如果它没有打开,它什么都不做。据我所知,VSCode 中的边栏没有等效项(workbench.action.closeSidebar 不起作用)。

我不想使用workbench.action.toggleSidebarVisibility命令;我想为侧边栏提供一个明确的 "close" 命令。是否有这样的命令,我只是没有看到它?如果它不存在,我想我会打开一个功能请求。

v1.43 更新:

添加 workbench.action.closeSidebar 命令。默认不绑定。

https://github.com/microsoft/vscode/pull/90404


我认为没有仅关闭命令,但您可以使用 workbench.action.toggleSidebarVisibility 命令创建一个。

 {
    "key": "alt+b",               // whatever keybinding you want
    "command": "workbench.action.toggleSidebarVisibility",
    "when": "sideBarVisible"
  },

现在 "toggle" 仅在侧边栏打开且可见时才起作用,否则它什么都不做。这就是 when 子句的用处。

你可以使用任何你想要的键绑定(如果你不想要它,你甚至可以使用 Ctrl+B切换)。


顺便说一句,多命令扩展可以在键绑定中使用 when 子句,例如:

{
  "key": "alt+b",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.closeSideBar&Panel" },
  "when": "sideBarVisible"
},

遗憾的是,由于某种原因似乎没有相应的 panelVisiblepanelIsOpen 子句。

"multiCommand.commands": [

  {
    "command": "multiCommand.closeSideBar&Panel",
    "sequence": [
      "workbench.action.closePanel",
      "workbench.action.toggleSidebarVisibility"
    ]
  }
]

[并且扩展作者正在研究在设置中授权 when 子句,请参阅 https://github.com/ryuta46/vscode-multi-command/issues/3.]