【问题标题】:Toggle between fullscreen editor and terminal in VS Code在 VS Code 中在全屏编辑器和终端之间切换
【发布时间】:2018-01-30 00:01:55
【问题描述】:

作为 Windows 系统管理员,我经常使用 PowerShell。随着 PS Core 的发布,以及 ISE 已死的暗示,我开始尝试使用 VS Code 作为我的日常工具。 ISE 缺少的一项功能是能够在编辑器和终端之间全屏切换。我通常保持 ISE 打开并最大化,并根据需要使用 Ctrl+R 在编辑器和终端之间切换。我还没有找到一种方法来最大化终端,并在终端和编辑器之间轻松交换。我知道我可以让终端占据大部分屏幕,但是 a) 这仍然会在顶部打开大约 2 行编辑器,并且 b) 似乎没有一种简单的方法来最大化编辑器。有没有办法缩小我尚未发现的 ISE 行为?

【问题讨论】:

  • 三年半后,我仍然得到 +1 的评价。 :-) 但是,我想提一下,我不再这样做了;因为我正在编写系统管理脚本,所以在我看来,作为一种安全最佳实践,我以我的日常(非管理员)用户身份运行 VS Code,并在我的账户上运行一个单独的 PowerShell 控制台作为我的管理员帐户第二个监视器来运行和测试我的脚本,以及测试要放入脚本的 cmdlet。我不能以这种方式使用集成调试器,但老实说我不需要它。当然,FWIW 和 YMMV 等等。

标签: visual-studio-code powershell-core


【解决方案1】:

要在全屏编辑器和几乎全屏终端之间切换,您可以使用:

{
    "key": "ctrl+alt+m",
    "command": "workbench.action.toggleMaximizedPanel"
}

用您选择的键绑定替换 Ctrl-Alt-m :那是我的。您只需要先“最大化”终端 - 将其拉到最远。它会在会话之间记住这一点。


重温此

从 v1.38 开始,这现在非常简单。有两个命令可以将面板/编辑器切换到全屏。

选择一些键绑定用于切换触发器:

{
    "key": "ctrl+alt+q",
    "command": "workbench.action.toggleMaximizedPanel",
    // "command": "workbench.action.toggleEditorVisibility"  either one
    "when": "!terminalFocus"
},

以上操作会将面板或编辑器展开到全高,但切换回来会将面板恢复到其原始大小,但不会完全恢复。如果您希望终端在完全打开和完全关闭之间弹跳,请尝试以下两种键绑定:

{
  "key": "ctrl+alt+t",  // you could use     "key": "ctrl+`",  if you wish
  "command": "workbench.action.closePanel",
  // "when": "terminalFocus"
},
{
  "key": "ctrl+alt+t",
  "command": "workbench.action.toggleMaximizedPanel",
  "when": "!terminalFocus"
},

以上 2 个键绑定的顺序是重要


v1.50 正在添加设置panel.opensMaximized - 我尝试了它的不同选项,但没有比我上面显示的两个键绑定ctrl+alt+t 版本更简单的结果。无论如何,请先关闭面板以使其正常工作。

【讨论】:

  • 差不多了;就像你说的那样,它使控制台(大部分)最大化。但是,当我再次切换它时,编辑器没有最大化;我只剩下一半的编辑器和控制台。
  • 我认为您只需要使用终端的初始定位 - 它对我有用。在“最大化”时设置一个起始位置,在几乎关闭时设置另一个位置,它似乎会记住这些位置 - 它并不完美,但非常接近于依次最大化每个位置。
  • 我试过了,但我把栏一直移到了底部。我想这关闭了底部,而不是实际移动分隔线,因为这就是我得到我提到的行为的方式。如果我在底部留下一行控制台,你是对的,它看起来确实接近我想要的。我会把这个留一两天,如果没有人给我一个更好的答案,这正是我想要的,我会接受这个。
  • 哎呀,我说得太早了。如果焦点在终端中,则不起作用。如果焦点停留在编辑器中,则两者按描述交换。
  • 在微软决定正式引入此功能之前的最佳选择。谢谢。
【解决方案2】:

在阅读@Mark 的答案后,下面概述了我的解决方案,因为它略有不同。我使用ctrl-alt-m 在全尺寸终端和全尺寸编辑器之间切换。

注意:这包括提到的集成终端和 vscode 应用程序菜单栏。

为了后代,我使用的是 1.40.1 版本的 vscode。

实施

您需要在 vscode 中添加键绑定并执行手动步骤。

keybindings.json

将此添加到您的keybindings.json 文件中,可通过Keyboard Shortcuts editor 访问:

    {
        "key": "ctrl+alt+m",
        "command": "workbench.action.toggleMaximizedPanel",
        "when": "!terminalFocus"
    },
    {
        "key": "ctrl+`",
        "command": "-workbench.action.terminal.toggleTerminal",
        "when": "!terminalFocus"
    },
    {
        "key": "ctrl+alt+m",
        "command": "workbench.action.terminal.toggleTerminal",
        "when": "terminalFocus"
    }

向下滑动集成终端

完成此操作并保存 keybindings.json 文件后,您需要在使用 ctrl+` 从编辑器打开后,手动向下滑动集成终端直到屏幕底部.

之后,您应该能够在您的编辑器和终端中使用ctrl+alt+m 以获得在它们之间移动的全屏体验。

我已经在本地作为主机在 Ubuntu 和 Fedora 上对此进行了测试,并使用 remote-ssh 从 Windows 10 主机远程连接到 Ubuntu。这有一个额外的好处,即允许您使用 ctrl+` 从编辑器中获取默认较小的终端,但使用单个命令 ctrl+alt+m 在编辑器/终端之间切换。 YMMV!

【讨论】:

  • 切换终端后如何将焦点返回给编辑器?
  • @rahulKushwaha 我只使用组合ctrl+`。最后一个字符是一个反引号,每第二个"key" 值,"ctrl+`",在上面的第二个块中。
  • 因提及实际放置更改的位置而受到支持 (keybindings.json)
【解决方案3】:

在 VS Code 中全屏打开终端

此解决方案将替换 VS Code 中的标准键绑定,以便终端全屏切换。

实施

打开命令面板ctrl+shift+p 并搜索Preferences: Open Keyboard Shortcuts (JSON) 并将其粘贴在方括号之间。

{ "key":"ctrl+j", "command":"workbench.action.toggleMaximizedPanel","when":"!terminalFocus" },
{ "key": "ctrl+oem_3", "command":"workbench.action.toggleMaximizedPanel", "when":"!terminalFocus" }

【讨论】:

    【解决方案4】:

    在新标签中创建终端并在标签之间切换

    Ctrl+Shift+P > Terminal: Create New Terminal in Editor Area 创建一个终端作为新选项卡(也称为编辑器)。它看起来像:

    现在您可以使用 View: Quick Open Previous Recently Used Editor in Group 在选项卡(也称为编辑器)和终端(位于新选项卡中)之间切换

    在新编辑器组中创建终端并在编辑器组之间切换

    Ctrl+Shift+P > Terminal: Create New Terminal in Editor Area to the Side 在新的编辑器组中创建一个终端。它看起来像:

    现在您可以使用View: Navigate Between Editor Groups在窗口和终端之间切换

    注意:

    您可以根据自己的方便为命令添加键绑定。

    【讨论】:

    • 请注意,与其他答案不同,此方法实际上创建了一个终端作为编辑器,它不是面板的一部分。特别是这意味着您可以在使用终端时打开面板的另一部分,尽管这也意味着不会有像 ctrl-` 这样的快捷方式来返回终端。
    • 我不确定它是如何工作的。 Quick Switch Window... 在 VSCode 窗口(工作区)之间移动我,而不是窗口中的选项卡。
    • @BallpointBen 非常感谢您的反馈。我已经更新了答案。如果您还有其他问题,请告诉我。
    【解决方案5】:

    对于 macOS 用户,您可以在同一 keybindings.json 文件中设置快捷方式。

    • 您可以使用快捷键cmd+shift+p访问该文件,然后写入/选择Preferences: Open Keyboard Shortcuts (JSON)

    • keybindings.json 中,在方括号之间粘贴以下代码:

      { "key": "cmd+alt+m",
         "command": "workbench.action.toggleMaximizedPanel",
         "when": "!terminalFocus" }
      

    您可以将快捷方式更改为适合您的任何快捷方式(注意重写任何默认快捷方式!),但我将我的设置为与其他人建议的相同(cmd+option+m) 保持“标准”。

    【讨论】:

      【解决方案6】:

      现在正好有一个扩展。它是 Samuel T Scott 的“最大化终端”扩展。它重新定义了 ctrl+` 以全屏打开终端。上述键绑定方法也很棒,但根据我的经验,一旦您开始使用“code app.js”之类的 cli 打开文件,它们往往无法正常工作。使用扩展时不会出现此类问题。

      【讨论】:

        【解决方案7】:

        我喜欢这个问题,我相信我发现了一些东西,或者至少得到了我正在寻找的行为。

        在此处使用工作区设置:https://github.com/microsoft/vscode/issues/107624

        (输入ctrl+,搜索“openmaximized”并将下拉菜单设置为“always”)

        从那里我将“切换终端”的键盘快捷键设置为 ctrl+j(或您可能喜欢的任何东西),现在当我切换终端时,它会从全屏切换到关闭

        【讨论】:

          【解决方案8】:

          对于 MacOS,我发现有用的 cmd+option+m

          【讨论】:

            猜你喜欢
            • 2017-08-05
            • 2018-05-02
            • 2010-12-19
            • 1970-01-01
            • 1970-01-01
            • 2018-07-04
            • 1970-01-01
            • 2023-01-25
            • 1970-01-01
            相关资源
            最近更新 更多