Visual Studio Code 有一个热键组合,可将当前窗口拆分为 2 或 3 个窗格:
"key": "ctrl + \", "command": "workbench.action.splitEditor"
不幸的是,我找不到在没有鼠标的情况下在这些窗格之间切换的方法。我使用 F6 的旧习惯也不起作用。
Visual Studio Code 编辑器是否支持它?
Shift+Alt+0
在垂直和水平编辑器布局之间切换 (workbench.action.toggleEditorGroupLayout
)
https://code.visualstudio.com/docs/customization/keybindings#_editorwindow-management
对于 Windows:Ctrl+1、Ctrl+2 和 Ctrl+3。
对于 Mac:Cmd+1、Cmd+2 和 Cmd+3。
不过,窗格之间没有循环切换,类似于 Ctrl+tabs 对文件所做的操作。
如果您习惯于使用 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"
}
]
Ctrl
+x
行完成(可能除其他外),因此在插入模式下禁用这些快捷方式是明智的:"when": "vim.mode != 'Insert'"
keybindings.json
- 请在此处查看有用的文档:code.visualstudio.com/docs/getstarted/…
使用 F6 在编辑器组之间循环
窗格之间有一个循环切换。它被称为“编辑组之间的循环”。
开箱即用,它是未分配的。我们可以将其分配给 F6。
打开 Visual Studio 代码。转到文件 > 首选项 > 键盘快捷键。将以下条目添加到 keybindings.json。您不必重新启动代码。它已经起作用了。
键绑定.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 聚焦到右侧的编辑器组
对于 Mac 用户和最新的 VS Code 1.17:
在窗格之间切换 - Cmd+[1,2,3...],其中 1,2,3 是窗格编号 在所有打开的文件之间循环:
前进 - Cmd+Shift+]
向后 - Cmd+Shift+[
另一种方法是使用 Ctrl + PageUp/PageDow 在窗格之间切换。
Alt+← 和 Alt+→ 在 Windows 上开箱即用。它只会在分屏窗格之间切换,并且不会重新激活窗格内的非活动文件。
如果您的意思是编辑组,就是这里。
https://i.stack.imgur.com/zxAQB.png
cmd+Left/Right
会转到下一个面板,无论它是同一编辑器组中的另一个选项卡还是不同编辑器组中的另一个选项卡
您正在寻找的是选项 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 + `
这样的快捷方式。
alt+down
并删除 @PhilippeFanaro 解释的 terminalFocus
使其完美; )
alt
键,焦点就会丢失,菜单栏会变成焦点(带有文件、编辑、选择的栏, view, go etc, etc... 选项在最上面)
显然,最佳答案是对最佳答案的隐藏评论。不知道为什么没有答案:
CMD + SHIFT + [
和
CMD + SHIFT + ]
我不确定为什么有人会使用 cmd + 1
或其变体。
cmd + 1
或它的其他变体(2
、3
、4
等),因为这是大多数选项卡式应用程序的工作方式。 CMD + SHIFT + ]
将所有窗格视为同一窗口上的同级选项卡。
是的,有一个热键可以在拆分的“编辑器”窗格之间切换,如果这就是你的意思的话。
虽然它必须配置。这是因为允许通过编辑器窗格(又名编辑器组)循环的命令没有默认的键盘映射/绑定。打开“键盘快捷键”菜单选项并搜索 workbench.action.navigateEditorGroups 。单击 + 图标以添加/分配键绑定。我将它映射到 Alt+Q,因为在 qwerty 键盘上,'q' 就在 Tab 键旁边。鉴于 Alt+Tab 循环通过打开的操作系统 Windows,在那里看起来很自然。
cmd
+ option
+ Left/Right Arrows
为我工作。
默认情况下,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 以循环浏览所有打开的编辑器,而不仅仅是当前组中的那些。
虽然它不会直接在组之间切换,但我更喜欢这种解决方案,因为它将两种类型的导航(在组之间移动,在编辑器之间移动)组合成一个已经存在于我肌肉记忆中的快捷方式。
尝试 Option+Tab 用于顺序切换,Cmd+ 用于按数字切换, shift+cmd+[(或 ])在编辑器之间的选项卡之间切换
如果上述方法都不适合您,并且您只想将一个简单的 ctrl-h
绑定到左窗格,而 ctrl-l
绑定到右窗格,请执行以下操作:
打开键盘快捷键 ( Ctrl-k, Ctrl-s ) 搜索 firstEditorGroup 并将 workbench.action.focusFirstEditorGroup 的键绑定更改为 ctr-h 再次搜索 secondEditorGroup 并将 workbench.action.focusSecondEditorGroup 的键绑定更改为 ctr- H
如果您只有两个编辑器窗格,这是一个简单的设置。
在 MacOS 版本 (1.54.3) 上,命令 View: Navigate Between Editor Groups
对我有用。
https://i.stack.imgur.com/4WRcG.png
我最近发现这个键绑定可以在组中的拆分窗格之间切换焦点。
"workbench.action.focusOtherSideEditor"
在 Mac 上:
Move Editor Left ⌘K← workbench.action.moveEditorLeftInGroup
Move Editor Right ⌘K→ workbench.action.moveEditorRightInGroup
Ctrl + Shift + [ / ]
在我的版本 (1.46) 中似乎映射到代码折叠和展开。我从未更改过默认设置。这是否意味着他们更改了默认设置?workbench.action.navigateEditorGroups
(可以通过搜索在键盘快捷键中或在关联的 json 中找到)