是否有热键可在拆分的窗格之间切换?


201

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

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

不幸的是,如果没有鼠标,我找不到在这些窗格之间切换的方法。我的老习惯F6也行不通。

Visual Studio Code编辑器是否支持它?


如果我想拆分窗格,但是我希望窗格/窗口向下而不是向侧面移动怎么办?
查理·帕克

Answers:


246

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

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

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

窗格之间没有循环切换,但是类似于Ctrl+ tab对文件执行的操作。


16
实际上,有一个键绑定来循环打开文件。根据这篇文章,它是“ CMD + SHIFT + [”和“ CMD + SHIFT +]”
simonxy

1
我意外发现这些键也可以在Chrome标签上使用
-jokab,

3
注意:对于Mac,Ctrl键不起作用。键而不是Ctrl是Cmd
user3245268 '19

如果存在“ CMD + SHIFT + [”和“ CMD + SHIFT +]”,为什么还要使用ctrl + 1?
查理·帕克

Ctrl + Shift + [ / ]在我的版本(1.46)中似乎映射为代码折叠和展开。我从未更改过默认值,这是否意味着他们更改了默认值?
shahensha

204

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

21
无法对此进行足够的投票。谢谢!!这正是我在寻找的东西。
dojosto

9
给这个家伙加薪
jaydel

2
这次真是万分感谢。我已经搜索了所有的键绑定,没有任何运气。似乎术语“焦点”和“导航”并没有得到一致使用。
xthrd19年

5
谢谢你!万一它对任何人都有帮助,我只是发现它破坏了VsCodeVim的Ctrl+ x行补全(可能包括其他事项),因此在插入模式下禁用这些快捷方式是明智的:"when": "vim.mode != 'Insert'"
c24w

12
如果您想弄清楚如何进行实际编辑keybindings.json-请在此处查看有用的文档:code.visualstudio.com/docs/getstarted/…–
mgarabed,

74

使用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" 
    }
]

或者

或者,使用开箱即用的窗口管理热键。

  • Ctrl+ 1专注于左编辑组
  • Ctrl+ 2专注于Side Editor组
  • Ctrl+ 3专注于右键编辑器组
  • Ctrl+ K Ctrl+ Left聚焦到左侧的编辑器组
  • Ctrl+ K Ctrl+ Right专注于右侧的编辑组

1
哇,谢谢,我偶然发现了我一直在寻找的东西。按Ctrl + K +左键(注意,左键没有Ctrl键)可以查看:将编辑器组向左移动(workbench.action.moveActiveEditorGroupLeft)。谢谢!
约翰·李

这实际上为我解答了这个问题。其他答案是关于如何在文件之间导航的。谢谢!
BCza

29

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

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

1
噢,天哪,循环时无法区分编辑器窗格和选项卡:|
duane

20

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



7

您正在寻找的是option 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”}添加到@PhilippeFanaro解释中并使其alt+down删除terminalFocus;)
Matthis Kohli

我不知道新版本,但我的编辑没有他的版本。切换窗格是如此痛苦。:D谢谢。
罗汉

我的VS Code默认具有这些设置,但是当我使用它们时,光标会移至下一个窗格,但是一旦我松开该alt键,焦点就会丢失,并且菜单栏将变为焦点(带有文件,编辑,选择,查看,去等等,等等。。。)
Sushmit Sagar

3

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

但是,必须对其进行配置。这是因为允许循环通过编辑器窗格(也称为编辑器组)的命令没有默认的键盘映射/绑定。打开“键盘快捷键”菜单选项,然后搜索workbench.action.navigateEditorGroups。单击+图标以添加/分配键绑定。我将其映射到Alt + Q,因为在qwerty键盘上,“ T”键位于Tab键旁边。鉴于Alt + Tab通过打开的OS Windows进行循环,因此在这里看起来很自然。


3

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

CMD + SHIFT + [

CMD + SHIFT + ]

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


1
你会使用cmd + 1,或者它的其他变体(234等),因为这是多大多标签应用程序的工作。 CMD + SHIFT + ]将所有窗格视为同一个窗口中的同级选项卡。
胚芽12

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.