有人知道在Visual Studio Code中切换编辑器和集成终端的快捷键(Mac和Linux)吗?
根据VS Code键盘快捷键文档页,切换集成终端的默认键绑定是“Ctrl+ '”。如果你不喜欢这个快捷方式,你可以在你的键绑定文件中添加类似的东西来改变它:
{ "key": "ctrl+l", "command": "workbench.action.terminal.toggleTerminal" }
似乎没有一个默认的键绑定来简单地聚焦底部面板。所以,如果你不想切换底部面板,你需要在你的keybindings文件中添加类似以下内容:
{ "key": "ctrl+t", "command": "workbench.action.focusPanel" }
虽然VS Code有很多模式切换和导航快捷方式,但没有一个专门用于“从编辑器移动到终端,然后再返回”。但是,您可以通过重载键和使用when子句来组合这两个步骤。
解决方案
您可以通过向键绑定添加适当的设置来实现所需的效果。json文件。以下是必需的步骤:
打开命令面板(Ctrl+Shift+P Windows/Linux或⇧⌘P Mac)。 输入“首选项:打开键盘快捷键(JSON)”并按Enter。 将以下条目添加到键绑定中。json文件:
// Toggle between terminal and editor focus
{
"key": "ctrl+`",
"command": "workbench.action.terminal.focus"
},
{
"key": "ctrl+`",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
}
使用这些快捷键,您可以使用相同的击键在编辑器和集成终端之间集中注意力。
NOTE
这里建议的组合键现在作为默认值内置到VSCode中(从1.72.2开始,可能更早)。在尝试添加它之前,看看ctrl + '是否有效。
NOTE
在现代版本的VS Code(截至2022年)中,默认键盘快捷键(JSON)文件是只读的,所以这就是为什么对于自定义设置,你需要编辑一个单独的专用文件keybindings.json。
更多信息可以在Visual Studio官方文档页面上找到:
Visual Studio Code的键绑定:高级定制
有点晚了,但我在keybindings.json中配置了我的如下:
{
"key": "ctrl+`",
"command": "workbench.action.terminal.focus",
"when": "editorTextFocus"
},
{
"key": "ctrl+`",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
"key": "alt+`",
"command": "workbench.action.terminal.toggleTerminal"
}
我想要单独的键来打开/关闭终端和在窗口之间来回切换焦点。
我把我的配置如下,因为我发现ctrl+ '有点难按。
{
"key": "ctrl+k",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focus",
"when": "!terminalFocus"
}
我还配置了以下内容,以便在编辑器组之间移动。
{
"key": "ctrl+h",
"command": "workbench.action.focusPreviousGroup",
"when": "!terminalFocus"
},
{
"key": "ctrl+l",
"command": "workbench.action.focusNextGroup",
"when": "!terminalFocus"
}
顺便说一下,我在Mac上从系统首选项=>键盘=>修改器键配置了Caps Lock。
这不是确切的问题,但我发现它非常有用和相关。
如果有人想从一个终端切换到另一个终端,也可以在Visual Studio的集成终端面板中打开,您可以搜索:
终端:关注下一个终端
或者添加以下快捷键,用键盘组合更快。
{
"key": "alt+cmd+right",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "alt+cmd+left",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
我通过设置>键盘快捷键来做到这一点,然后在它给出一个搜索栏类型的焦点终端的部分中选择该选项。它将要求输入您想要为此操作设置的组合。这样做。至于编辑器焦点,在搜索栏中输入“编辑器焦点”,并输入您想要的键。如果你出色地添加了一个键。可以通过编辑上面评论中提到的Jason来删除它
对于版本:1.26.1 (linux),默认情况下没有设置快捷方式。 设置快捷方式
打开键盘快捷键面板[ctrl + k, ctrl + s] 搜索焦点终端
设置快捷方式
编辑器的焦点已默认设置。
Shubham Jain的答案是现在使用内置的键盘快捷键的最佳选择。
我映射
Ctrl +;
和重新映射
Ctrl + L
这样你就可以在终端和编辑器之间移动焦点,并在近距离切换终端。
ctrl+ ':专注于集成终端
ctrl+1:聚焦编辑器(如果Editor -2命令是ctrl+2)
更多信息:https://medium.com/p/21969576c09c
通常,VS Code使用ctrl+j打开终端,所以我创建了一个键绑定来切换与ctrl+k组合,如下在keybindings.json:
[
{
"key": "ctrl+k",
"command": "workbench.action.terminal.focus"
},
{
"key": "ctrl+k",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
}
]
适用于任何键盘布局的简单WINDOWS解决方案(可能适用于其他操作系统,但未经测试)
我使用芬兰键盘,所以上面没有一个工作,但这应该适用于所有的键盘。
终端焦点:将鼠标悬停在集成终端的终端文本上。聚焦终端的快捷方式将会弹出-例如,我说CTRL+ö。 编辑器焦点:如上所述,使用CTRL+1。
下面是我的方法,它提供了在活动终端之间导航的一致方式,以及在终端和编辑器窗格之间跳转而无需关闭终端视图。您可以尝试将此添加到您的键绑定。我建议你使用键盘绑定UI (Mac上的cmd+K cmd+S),这样你就可以检查/管理冲突等。
这样,我可以使用ctrl+x <箭头方向>导航到任何可见的编辑器或终端。一旦光标在终端部分,您可以使用ctrl+x ctrl+up或ctrl+x ctrl+down在活动终端中循环。
cmd-J仍然用于隐藏/显示终端窗格。
{
"key": "ctrl+x right",
"command": "workbench.action.terminal.focusNextPane",
"when": "terminalFocus"
},
{
"key": "ctrl+x left",
"command": "workbench.action.terminal.focusPreviousPane",
"when": "terminalFocus"
},
{
"key": "ctrl+x ctrl+down",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus"
},
{
"key": "ctrl+x ctrl+up",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus"
},
{
"key": "ctrl+x up",
"command": "workbench.action.navigateUp"
},
{
"key": "ctrl+x down",
"command": "workbench.action.navigateDown"
},
{
"key": "ctrl+x left",
"command": "workbench.action.navigateLeft",
"when": "!terminalFocus"
},
{
"key": "ctrl+x right",
"command": "workbench.action.navigateRight",
"when": "!terminalFocus"
},
实际上,在VS Code 1.48.1中,有一个toggleTerminal命令;我不知道以前的版本中是否有;)您可以在键绑定中使用它。json文件。
这在Windows上适用,在Linux上也适用。
{
"key": "ctrl+alt+right",
"command": "workbench.action.terminal.toggleTerminal",
"when": "editorTextFocus || terminalFocus"
}
下面是一种添加自己的键绑定来切换焦点的方法。
打开VSCode 按Ctrl+Shift+P,搜索键盘快捷键并点击这个(首选项:打开键盘快捷键)。 在搜索面板中搜索“聚焦终端”并找到该选项(终端:聚焦终端视图)并单击加号图标。
输入你喜欢的没有使用的快捷方式,然后按Enter。 进入编辑器模式,尝试使用快捷方式。 现在按Alt+Shift+T进入终端。 想回去找编辑吗?只需按Ctrl+tab
在Windows 10机器上使用VSCode(1.52.1)进行测试
嘿,我的工作步骤是:
CTRL + shift+ p,寻找首选项:键盘快捷键
或者你可以使用CTRL k + CTRL s直接打开它
在搜索框中寻找终端:焦点终端,我为自己设置了alt + T alt + T,但你可以选择你想要的组合 在搜索框中搜索“视图:焦点活动编辑器组”,为自己设置alt + E alt + E,但同样你可以选择你想要的组合
就是这样,我希望这对你有所帮助
100%工作设置…
[
{ "key": "alt+right", "command": "workbench.action.terminal.focus"},
{ "key": "alt+left", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"}
]
从编辑器切换到 终端。workbench.action.focusActiveEditorGroup:切换 从终端到编辑器。
为了在ctrl+ '组合之间进行切换,我尝试了所有列出的答案,但运气不好。对于那些像我一样有类似问题的人,尝试以下键绑定中的快捷方式。在VSCode 1.59+上测试
[
{
"key": "ctrl+oem_8","command": "workbench.action.terminal.focus", "when": "!terminalFocus"
},
{
"key": "ctrl+oem_8","command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus"
}
]
另一种选择是使用F6和shift+F6。
F6点击“聚焦下一部分”,将焦点从编辑器移动到下面的面板(终端、输出、调试控制台等)。
shift+F6点击“聚焦前一部分”,将焦点从终端面板移回编辑器。
与ctrl + '相比,this的优势在于:
它不隐藏终端/面板(如果这是你喜欢的。如果您喜欢隐藏/取消隐藏终端,那么只需使用ctrl + ')。 这将适用于任何面板(终端,输出,调试控制台等)。
我的解决方案:
只有一把钥匙 如果还没有终端:打开一个终端并聚焦在它上面 如果焦点在终端上:隐藏面板并切换回编辑器 如果焦点在编辑器上并且有一个终端:取消终端窗格并聚焦在它上
{
"key": "ctrl+shift+alt+cmd+t",
"command": "workbench.action.terminal.new",
"when": "!terminalIsOpen"
},
{
"key": "ctrl+shift+alt+cmd+t",
"command": "terminal.focus",
"when": "terminalIsOpen && !terminalFocus"
},
{
"key": "ctrl+shift+alt+cmd+t",
"command": "workbench.action.closePanel",
"when": "terminalIsOpen && terminalFocus"
}
根据键盘布局的不同(QWERTY/QWERTZ/AZERTA等)
要找到你的快捷键,按Ctrl+Shift+P,然后转到首选项:键盘快捷键。
从那里搜索视图:切换终端
使用keybindings.json中的键绑定:
CTRL+j和CTRL+k将焦点在编辑器组中的编辑器和终端中的终端窗口之间转移 CTRL+h和CTRL+l在包括终端在内的编辑器组之间转移焦点
(这些键绑定对vim用户来说应该特别自然。其他人可能希望把h/j/k/l换成左/下/上/右)
// In an editor group, ctrl+j and ctrl+k jump between editor windows
{ "key": "ctrl+j", "command": "workbench.action.nextEditorInGroup" },
{ "key": "ctrl+k", "command": "workbench.action.previousEditorInGroup" },
// In the terminal, ctrl+j and ctrl+k jump between terminal windows
{
"key": "ctrl+j",
"command": "workbench.action.terminal.focusNext",
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
},
{
"key": "ctrl+k",
"command": "workbench.action.terminal.focusPrevious",
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
},
// In the work area, ctrl+j and ctrl+k jump between editor groups
{ "key": "ctrl+h", "command": "workbench.action.focusPreviousGroup" },
{ "key": "ctrl+l", "command": "workbench.action.focusNextGroup" },
// in the first editor group terminal, jump "back" to the terminal (if there is a terminal open)
{
"key": "ctrl+h",
"when": " terminalHasBeenCreated && terminalIsOpen && activeEditorGroupIndex == 1",
"command": "workbench.action.terminal.focus"
},
// in the last editor group terminal, jump "forward" to the terminal (if there is a terminal open)
{
"key": "ctrl+l",
"when": "terminalHasBeenCreated && terminalIsOpen && activeEditorGroupLast",
"command": "workbench.action.terminal.focus"
},
// in the terminal, jump "back" to the last editor group
{
"key": "ctrl+h",
"command": "workbench.action.focusLastEditorGroup",
"when": "terminalFocus"
},
// in the terminal, jump "forward" to the last first group
{
"key": "ctrl+l",
"command": "workbench.action.focusFirstEditorGroup",
"when": "terminalFocus"
},
我的1.56 VS Code的工作原理是:
Ctrl + ~ to focus on terminal window from editor
Ctrl + 9 to focus back on editor from terminal
推荐文章
- Visual Studio Code:格式没有使用缩进设置
- 如何排除文件扩展名和语言从“格式保存”在VSCode?
- Visual Studio代码- URI的目标不存在" package:flutter/material.dart "
- VSCode——如何设置调试Python程序的工作目录
- 是否可以配置控制+滚轮增加/减少缩放在VS Code?
- 如何禁用或隐藏滚动条/小地图?
- Visual Studio代码如何解决合并冲突与git?
- Visual Studio代码-在文件末尾插入换行符
- 如何重新启动VScode编辑扩展的配置?
- Visual Studio代码PHP Intelephense保持显示不必要的错误
- 如何添加一个@顺风CSS规则CSS检查
- 我如何打开Visual Studio Code的设置。json文件?
- 在Visual Studio代码中运行的Angular应用程序中,TSLint扩展抛出错误
- 在Visual Studio代码编辑器中使用哪种字体以及如何更改字体?
- 如何设置Visual Studio代码来编译c++代码?