【问题标题】:Is there a hotkey to switch between split window panes?是否有在拆分窗口窗格之间切换的热键?
【发布时间】:2016-07-19 14:09:16
【问题描述】:

Visual Studio Code 有一个热键组合可将当前窗口拆分为 2 或 3 个窗格:

"key": "ctrl + \",               "command": "workbench.action.splitEditor"

不幸的是,我找不到在没有鼠标的情况下在这些窗格之间切换的方法。我使用 F6 的旧习惯也不起作用。

Visual Studio Code 编辑器是否支持?

【问题讨论】:

  • 如果我想拆分窗格,但我希望窗格/窗口向下而不是侧向,该怎么办?
  • 请标记正确答案,OP
  • @CharlieParker Shift+Alt+0 在垂直和水平编辑器布局之间切换 (workbench.action.toggleEditorGroupLayout)

标签: visual-studio-code hotkeys


【解决方案1】:

https://code.visualstudio.com/docs/customization/keybindings#_editorwindow-management

对于 Windows:Ctrl+1Ctrl+2Ctrl +3.

对于 Mac:Cmd+1Cmd+2Cmd +3.

窗格之间没有循环切换,类似于 Ctrl+tabs 对文件所做的操作。

【讨论】:

  • 实际上有一个键绑定来循环打开文件。根据这个article,它是“CMD + SHIFT + [”和“CMD + SHIFT + ]”
  • 我不小心发现这些键也可以在 Chrome 选项卡上使用
  • 注意:对于 Mac,Ctrl 不起作用。代替 Ctrl 的键是 Cmd
  • Ctrl + Shift + [ / ] 在我的版本(1.46)中似乎映射到代码折叠和展开。我从未更改过默认设置。这是否意味着他们更改了默认设置?
  • 这不是真的,正如下面的 Shaun Luttin 所示,您要查找的操作是 workbench.action.navigateEditorGroups(可以通过搜索或关联的 json 在键盘快捷键中找到)
【解决方案2】:

如果您习惯于在 vim(和/或 tmux)中工作,并且想在 ctrl+hjkl 中四处走动

将这些添加到keybindings.json

[
    {
        "key": "ctrl+h",
        "command": "workbench.action.navigateLeft"
    },
    {
        "key": "ctrl+l",
        "command": "workbench.action.navigateRight"
    },
    {
        "key": "ctrl+k",
        "command": "workbench.action.navigateUp"
    },
    {
        "key": "ctrl+j",
        "command": "workbench.action.navigateDown"
    }
]

【讨论】:

  • 对此赞不绝口。谢谢!!这正是我想要的。
  • 给这家伙加薪
  • 谢谢你。我已经在没有任何运气的情况下搜索了键绑定。似乎“焦点”和“导航”这两个词的使用并不一致。
  • 谢谢!如果它对任何人有帮助,我刚刚发现它破坏了 VsCodeVim 的 Ctrl+x 行完成(可能除其他外),因此在插入模式下禁用这些快捷方式是明智的:"when": "vim.mode != 'Insert'"
  • 如果您想弄清楚如何实际编辑 keybindings.json - 请在此处查看有用的文档:code.visualstudio.com/docs/getstarted/…
【解决方案3】:

使用 F6 在编辑器组之间循环

窗格之间有一个循环切换。它被称为“编辑组之间的循环”。

开箱即用,它是未分配的。我们可以将它分配给 F6

  1. 打开 Visual Studio 代码。
  2. 转到文件 > 首选项 > 键盘快捷键。
  3. 将以下条目添加到keybindings.json
  4. 您不必重新启动代码。它已经起作用了。

keybindings.json

// Place your key bindings in this file to overwrite the defaults
[
    {
        "key": "f6", 
        "command": "workbench.action.navigateEditorGroups" 
    }
]

或者

或者,使用out of the box window management hotkeys.

  • Ctrl +1 聚焦到左编辑器组
  • Ctrl +2 聚焦到侧面编辑器组
  • Ctrl +3 聚焦到右编辑器组
  • Ctrl +K Ctrl+Left 聚焦到左侧的编辑器组
  • Ctrl +K Ctrl+Right 聚焦到右侧的编辑器组

【讨论】:

  • 哇,谢谢,我无意中找到了我一直在寻找的东西。 Ctrl + K + Left(注意左侧没有 Ctrl)查看:向左移动编辑器组 (workbench.action.moveActiveEditorGroupLeft)。谢谢!
  • 这实际上回答了我的问题。其他答案是关于如何在文件之间导航。谢谢!
  • 最后,实际答案!!!在页面底部!
  • 在VSCode(v1.64)中F6已经分配给在“部分”之间切换的命令,这也很有用,所以我改为使用Shift+W。
【解决方案4】:

对于 Mac 用户和最新的 VS Code 1.17:

  1. 在窗格之间切换 - Cmd+[1,2,3...],其中1,2,3 是窗格编号
  2. 在所有打开的文件之间循环:
  • 向前 - Cmd+Shift+]
  • 向后 - Cmd+Shift+[

【讨论】:

  • 天哪,骑自行车时无法区分编辑器窗格和选项卡:|
  • 这个 [Cmd] + [1,2,3...] 对我有用,在 MacOS Catalina 上。
【解决方案5】:

另一种方法是使用 Ctrl + PageUp/PageDow 在窗格之间切换。

【讨论】:

    【解决方案6】:

    Alt+Alt+ 在 Windows 上开箱即用。它只会在分屏窗格之间切换,并且不会重新激活窗格内的非活动文件。

    【讨论】:

    • 不适用于 1.52+ 版本。改为使用 Ctrl+PgUp/PgDown
    • Mac上有类似的伏击吗?
    • @maks 我使用的是 1.64.2 (Windows),Alt+Left / Alt+Right 可以让我在不同的窗格之间切换。
    【解决方案7】:

    如果你的意思是编辑组,这里就是。

    【讨论】:

    • 是的!我很高兴它现在存在,不再有鼠标!
    • 这应该是最正确的答案。与@duane 在对另一个答案的评论中提到的一样,cmd+Left/Right 会转到下一个面板,无论它是同一编辑器组中的另一个选项卡还是不同编辑器组中的另一个选项卡
    【解决方案8】:

    您正在寻找的是选项workbench.action.terminal.focusNextPane

    { 
      "key": "alt+down",
      "command": "workbench.action.terminal.focusNextPane",
      "when": "terminalFocus"
    },
    { 
      "key": "alt+right",
      "command": "workbench.action.terminal.focusNextPane",
      "when": "terminalFocus"
    },
    

    【讨论】:

    • 我认为这些快捷方式已经在较新的版本中,并且还有一个focusPreviousPane 选项。
    • 就我个人而言,我什至不使用"when": "terminalFocus" 规范,它使管理终端更快,因为我不必添加像Ctrl + ` 这样的快捷方式。
    • 将 { "key": "alt+up", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus" } 添加到 alt+down 并删除 terminalFocus 为由@PhilippeFanaro 解释使其完美;)
    • 我不知道新版本,但我的编辑没有他的。切换窗格是如此痛苦。 :D 谢谢。
    • 我的 VS Code 默认有这些设置,但是当我使用它们时,光标会移动到下一个窗格,但是一旦我释放 alt 键,焦点就会丢失,菜单栏会变成焦点(带有文件、编辑、选择、查看、执行等选项的栏位于最顶部)
    【解决方案9】:

    显然,最佳答案是对最佳答案的隐藏评论。不知道为什么没有答案:

    CMD + SHIFT + [

    CMD + SHIFT + ]

    我不确定为什么有人会使用 cmd + 1 或其变体。

    【讨论】:

    • 您可以使用cmd + 1 或其他变体(234 等),因为这是大多数选项卡式应用程序的工作方式。 CMD + SHIFT + ] 将所有窗格视为同一个窗口上的同级选项卡。
    【解决方案10】:

    是的,有一个热键可以在拆分的“编辑器”窗口窗格之间切换,如果这就是你的意思的话。

    它必须被配置。这是因为允许循环通过编辑器窗格(又名编辑器组)的命令没有默认的键盘映射/绑定。打开“键盘快捷键”菜单选项并搜索 workbench.action.navigateEditorGroups 。单击 + 图标以添加/分配键绑定。我将它映射到 Alt+Q,因为在 qwerty 键盘上,'q' 就在 Tab 键旁边。鉴于 Alt+Tab 在打开的 OS Windows 之间循环,这似乎很自然。

    【讨论】:

      【解决方案11】:

      cmd + option + Left/Right Arrows 为我工作。

      【讨论】:

        【解决方案12】:

        尝试 Option+Tab 顺序切换,Cmd+ 数字切换,shift+cmd+[(或])在编辑器之间切换标签

        【讨论】:

          【解决方案13】:

          如果上述方法都不适合您,并且您只想将一个简单的ctrl-h 绑定到左窗格,并将ctrl-l 绑定到右窗格,请执行以下操作:

          1. 打开键盘快捷键(Ctrl-k、Ctrl-s)

          2. 搜索 firstEditorGroup 并将 workbench.action.focusFirstEditorGroup 的键绑定更改为 ctr-h

          3. 再次搜索 secondEditorGroup 并将 workbench.action.focusSecondEditorGroup 的键绑定更改为 ctr-h

          如果您只有两个编辑器窗格,这是一个简单的设置。

          【讨论】:

            【解决方案14】:

            命令 View: Navigate Between Editor Groups 在 MacOS 版本 (1.54.3) 上为我工作。

            【讨论】:

              【解决方案15】:

              默认情况下,Ctrl+Tab 循环浏览当前组中的编辑器,但不在组之间循环。我们可以简单地扩展默认快捷方式来获得我们想要的行为。 VS Code user guide 告诉我们需要添加到 keybindings.json 的内容:

              [
                {
                  "key": "ctrl+tab",
                  "command": "workbench.action.quickOpenPreviousRecentlyUsedEditor",
                  "when": "!inEditorsPicker"
                },
                {
                  "key": "ctrl+shift+tab",
                  "command": "workbench.action.quickOpenLeastRecentlyUsedEditor",
                  "when": "!inEditorsPicker"
                }
              ]
              

              这将修改 Ctrl+Tab 以循环浏览所有打开的编辑器,而不仅仅是当前组中的那些。

              虽然它不会直接在组之间切换,但我更喜欢这种解决方案,因为它将两种类型的导航(在组之间移动、在编辑器之间移动)结合到一个已经存在于我肌肉记忆中的快捷方式中。

              【讨论】:

                【解决方案16】:

                我最近发现了这个键绑定,它可以在组中的拆分窗格之间切换焦点。

                "workbench.action.focusOtherSideEditor"
                

                【讨论】:

                • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-12-21
                • 2017-11-27
                • 1970-01-01
                • 2014-04-20
                • 2011-01-13
                • 2017-07-11
                • 1970-01-01
                相关资源
                最近更新 更多