【问题标题】:Is there a VSCode action to close the sidebar if open, otherwise do nothing?如果打开,是否有 VSCode 操作来关闭侧边栏,否则什么都不做?
【发布时间】:2019-12-29 19:51:24
【问题描述】:

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

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

【问题讨论】:

    标签: visual-studio-code vscode-settings


    【解决方案1】:

    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.]

    【讨论】:

    • 感谢您的提示!我认为这在一般情况下有效,但没有本机命令,对吗?我没有在描述中提到它,但我正在尝试使用multi-command 扩展来同时执行“关闭面板”和“关闭侧边栏”。不确定我是否可以将该扩展设置为执行多个快捷方式,因为它只将本机命令作为输入...
    • 哦!我得到了它;我将只使用具有相同快捷方式的多个命令,但将它们映射到不同的when 子句。奇迹般有效。再次感谢!无论如何,我可能会提交功能请求,因为拥有命令而不是使用when 子句会很好。
    • 很高兴你让它工作,看看我添加到关于多命令的答案的一些注释:我经常使用它。
    猜你喜欢
    • 2023-03-05
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多