有没有一个快捷键可以在分割窗格之间切换?

413

Visual Studio Code有一个热键组合可以将当前窗口分割为2或3个面板:

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

很遗憾,我找不到一种方法可以在没有鼠标的情况下切换这些窗格。我旧的习惯是使用F6键也不起作用。

Visual Studio Code编辑器是否支持此功能?


如果我想要分割窗格,但是我希望窗格/窗口向下而不是向侧面移动怎么办? - Charlie Parker
请标记正确答案,OP - birgersp
1
@CharlieParker Shift+Alt+0 可以在垂直和水平编辑器布局之间切换 (workbench.action.toggleEditorGroupLayout)。 - Malcolm
20个回答

558

41
实际上,Visual Studio Code中有一个快捷键可以循环打开文件。根据这篇文章,它是“CMD + SHIFT + [”和“CMD + SHIFT + ]”。 - simonxy
4
这些钥匙也可以在 Chrome 标签页上使用,这是我意外发现的。 - jokab
3
注意:在 Mac 上,Ctrl 键不起作用。替代 Ctrl 的键是 Cmd。 - user3245268
4
在我的版本(1.46)中,Ctrl + Shift + [ / ]似乎被映射到了代码折叠和展开。我从未更改过默认设置。这是否意味着它们更改了默认设置? - shahensha
5
这并不是真的,正如Shaun Luttin在下面展示的那样,你要寻找的操作是workbench.action.navigateEditorGroups(可以通过搜索键盘快捷方式或相关的json文件找到)。 - n-smits
显示剩余5条评论

434

如果您习惯于使用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"
    }
]

42
无法点赞这个足够了。谢谢!!这正是我在寻找的东西。 - Doug Johnston
18
给这个人加薪。 - jaydel
3
谢谢您。我已经在按键绑定中进行了搜索,但没有找到合适的结果。似乎“焦点”和“导航”这些术语并没有被一致地使用。 - xthrd
11
谢谢您!如果有人需要的话,我刚发现这会破坏VsCodeVim的Ctrl+x行补全(可能也包括其他功能),所以最好在插入模式下禁用这些快捷键:"when": "vim.mode != 'Insert'" - c24w
32
如果你想弄清如何实际编辑keybindings.json文件,请参考这里的有用文档:https://code.visualstudio.com/docs/getstarted/keybindings#_advanced-customization - mgarabed
显示剩余15条评论

160

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

有一个圆形开关可以在不同的面板之间切换。它被称为“在编辑器组之间循环”。

默认情况下,该功能未分配快捷键。我们可以将其分配给F6

  1. 打开 Visual Studio Code。
  2. 转到“文件”>“首选项”>“键盘快捷方式”。
  3. 将以下条目添加到keybindings.json中。
  4. 您无需重新启动代码即可生效。

keybindings.json

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

或者

或者,您可以使用内置的窗口管理热键。

  • Ctrl +1 专注于左侧编辑器组。
  • Ctrl +2 专注于侧面编辑器组。
  • Ctrl +3 专注于右侧编辑器组。
  • Ctrl +K Ctrl+Left 专注于左侧编辑器组。
  • Ctrl +K Ctrl+Right 专注于右侧编辑器组。

9
哇,谢谢你!我意外地找到了我一直在寻找的东西。按下Ctrl + K + Left(注意左侧没有Ctrl),可以实现“查看:移动编辑器组向左”(workbench.action.moveActiveEditorGroupLeft)的功能。谢谢! - John Lee
这实际上回答了我的问题。其他答案是关于如何在文件之间导航的。谢谢! - BCza
2
最终答案来了!!!在页面底部! - Joe Coder
1
在VSCode(v1.64)中,F6已经分配给了在“部分”之间切换的命令,这也很有用,因此我改为使用Shift+W。 - Paul
Ctrl+1和Ctrl+2对我有效。谢谢! - A. K.

74

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

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

4
天啊,当切换时无法区分编辑器窗格和选项卡 :| - gnkdl_gansklgna
1
这个 [Cmd] + [1,2,3...] 是在我的 MacOS Catalina 上有效的。 - Qasim

31

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


30

Alt+Alt+ 在Windows系统中可以直接使用,它们只能在分屏窗格之间切换,并不能重新激活窗格内的非活动文件。


2
不适用于1.52+版本。请改用Ctrl+PgUp/PgDown。 - maks
在 Mac 上是否有类似的埋伏技术? - molexi
@maks 我正在使用1.64.2版本(Windows),Alt+Left / Alt+Right可以帮助我在不同的窗格之间切换。 - kmoser

20
如果您意思是编辑组,这里就是。

在此输入图片描述


2
是的!现在有这个,我很高兴,不用再用鼠标了! - Arthur Maltson
这应该是最正确的答案。正如@duane在另一个答案的评论中提到的那样,cmd+Left/Right会转到下一个面板,无论它是同一编辑器组中的另一个选项卡还是不同编辑器组中的选项卡。 - RexYuan

9
你需要的是选项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 选项。 - Philippe Fanaro
就我个人而言,我甚至不使用"when": "terminalFocus"这个规范,因为这使得终端的管理更加快捷,因为我不必添加像`Ctrl + ``这样的快捷方式。 - Philippe Fanaro
将以下内容添加到 alt+down 并按照 @PhilippeFanaro 的说明删除 terminalFocus 即可完美: { "key": "alt+up", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus" } - Matthis Kohli
我不知道新版本的情况,但我的编辑器没有它。切换窗格真是太痛苦了。:D 谢谢。 - Rohan
我的VS Code默认具有这些设置,但当我使用它们时,光标会移动到下一个窗格,但是一旦我释放alt键,焦点就会丢失,并且菜单栏会获得焦点(顶部带有文件、编辑、选择、视图、转到等选项的栏)。 - Sushmit Sagar

8

很明显,最好的答案是在顶部答案下的隐藏评论。不确定为什么没有针对它的回答:

CMD + SHIFT + [

以及

CMD + SHIFT + ]

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


2
你可以使用 cmd + 1 或其他变体 (2, 3, 4 等) ,因为这是大多数选项卡应用程序的工作方式。CMD + SHIFT + ] 将所有窗格视为同一窗口上的兄弟选项卡。 - germs12

7
我最近发现了这个在组内切换分割窗格焦点的键绑定。
"workbench.action.focusOtherSideEditor"

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
1
非常感谢您!我一直在寻找这个设置。这允许在同一个选项卡中切换编辑器(例如,在查看文件差异或将编辑器拆分为“workbench.action.splitEditorInGroup”时)。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接