首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换当前窗口的最大化(对于任何类型的窗口)

切换当前窗口的最大化(对于任何类型的窗口)
EN

Stack Overflow用户
提问于 2019-11-15 21:41:24
回答 1查看 214关注 0票数 0

我想要定义一个通用键盘绑定,它允许我无论窗口的类型如何,都可以切换 current窗口的最大化

至少,一个窗口可以是

  • 任何单一编辑器组
  • 面板本身

通过maximization,,我的意思是,在 side side中,该窗口接管了完整的应用程序窗口,而侧边栏异常(即,如果边条已经可见,那么它在任何时候都是可见的)。

当然,我的意思是在最初的布局(即记住它)和最大化结果之间来回切换。

我对这个问题的思考

有几个命令I,我认为在这里可以帮助,但他们似乎没有做我想做的。

  • workbench.action.toggleEditorWidths
  • workbench.action.maximizeEditor
  • workbench.action.toggleMaximizePanel
  • workbench.action.toggleEditorVisibility

我怀疑

  1. 这里有更多的命令可以帮助。
  2. 子句和命令ID (?)的联合执行时,可能有一种方法可以使用正确的布尔逻辑来实现这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-16 21:49:54

在您的keybindings.json中尝试以下操作(选择所需的键绑定):

代码语言:javascript
复制
 {
    "key": "alt+m",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
  },
  {
    "key": "alt+m",
    "command": "workbench.action.closePanel",
    "when": "editorFocus && panelIsOpen"
  },
  {
    "key": "alt+m",
    "command": "workbench.action.togglePanel",
    "when": "editorFocus && !panelIsOpen"
  },

它工作得很好--对SideBar或ActivityBar没有任何影响--除了一件事。第三个键绑定中的workbench.action.togglePanel命令将显示为切换最大化编辑器,但该命令将焦点转移到打开的面板上。这可能不是你所期望的。

如果你不想把焦点转移到面板上,当编辑器不最大化的时候,我想你将不得不在混合中添加一个宏。禁用第二个和第三个键绑定,并将其添加到settings.json中:

代码语言:javascript
复制
"multiCommand.commands": [

  {
    "command": "multiCommand.toggleEditorWthFocus",
    "sequence": [
      "workbench.action.togglePanel",
      "workbench.action.focusActiveEditorGroup",
      "workbench.action.toggleEditorWidths"  // will toggle other editor groups width
        // but other editor group width goes to a built-in minimum, not 0
    ]
  }
],

使用多命令宏扩展。

并使用这些作为您的两个键绑定:

代码语言:javascript
复制
  {
    "key": "alt+m",
    "command": "workbench.action.toggleMaximizedPanel",
    "when": "terminalFocus"
  },

  //{
  //  "key": "alt+m",
  //  "command": "workbench.action.closePanel",
  //  "when": "editorFocus && panelIsOpen"
  //},
  // {
  //   "key": "alt+m",
  //   "command": "workbench.action.togglePanel",
  //   "when": "editorFocus && !panelIsOpen"
  // },


{
  "key": "alt+m",
  "command": "extension.multiCommand.execute",
  "args": { "command": "multiCommand.toggleEditorWthFocus" },
  "when": "editorTextFocus && !panelIsOpen"
},

我知道你说你希望SideBar不变,但如果你走宏观路线,我认为这也很容易切换。

上面的注释注意到,如果您有多个编辑器组,那么非焦点编辑器组的宽度将被最小化,但是它会减少到一些内置的最小值,而不是0宽度。我认为除了关闭其他编辑器组之外,没有其他编辑器组可以打开/关闭的方法,但您可能不想这样做。

演示与拆分:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58885067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档