Visual Studio Code中用于导航工作文件的键盘快捷键

76

我是一名习惯于使用Sublime Text的Web开发人员。通常情况下我会打开多个文件,并使用cmd+option+left(或者right)来在它们之间切换。

我希望在Visual Studio Code中有一个尽可能接近这种功能的东西。据我所知,在Visual Studio Code中,你不需要像Sublime Text那样在顶部的选项卡中打开多个文档,而是应该使用左侧侧边栏中的“工作文件”列表。有几个问题:

  • 是否有一个键盘快捷键可以按顺序在这些文件之间导航?(相当于Sublime Text中的cmd+option+left(或right))
  • 是否有一个键盘快捷键可以关闭文件并将其从工作文件列表中删除?cmd+w只会关闭编辑器窗口。
  • 如果默认情况下不存在这些快捷键,我可以创建它们吗?

我刚刚发现了Ctrl+-Ctrl+shift+-(ref),它们可以在“编辑位置”之间导航。这很方便,但有时会在同一文件中的不同位置跳来跳去(取决于你在哪里编辑)。此外,我希望有一个选项,按顺序移动文件,即根据它们在“工作文件”列表中的顺序从上到下移动。


这是一个关于vscode存储库的未解决问题:https://github.com/Microsoft/vscode/issues/3260 - dotnetCarpenter
2
我正在使用1.17.0(Mac),对于我来说,我可以使用你建议的cmd+option+left(或+right)在所有打开的文件之间导航。 - Fasani
15个回答

108

我喜欢有命令来关闭一个工作文件或关闭所有工作文件的想法,我会考虑在下一次更新中添加这些内容。

至于在工作文件之间导航:我们有一个非常强大的导航工具,叫做导航历史。默认情况下,它分配给Ctrl+Tab,您可以按住Ctrl键并单击Tab键来循环浏览文件列表,类似于您可以在操作系统上切换窗口。

导航历史与您所要求的不完全相同,因为它还包含了您打开但未在工作文件中的文件。您能否试试并反馈它是否解决了您的导航问题?

我们认为这是一种更自然的导航方式,因为您不必担心工作文件的顺序。而是跨越最近使用的文件列表进行导航。

在我们的团队中,我们太习惯导航历史了,我们再也不能没有它了。经常我们会按一两次Ctrl+Tab,甚至根本不看打开的列表,因为我们知道我们想要的文件可能是一个或两个历史条目之间。

更新

随着Visual Studio Code 0.5.0的发布,现在有了导航工作文件列表中向后和向前导航的键盘快捷键。快捷键是CMD+K+CMD+K+(在Windows上使用Ctrl键)。


1
谢谢回复!我很感激您的建议 - 我不怀疑它是有帮助的,如果那是唯一的选择,我可能会依赖它。然而,我认为我总是更喜欢拥有一个选定的文件组(如工作文件),可以按顺序浏览。对我来说,问题在于“最近使用的文件”列表当然总是在变化顺序,这使得当我尝试在两个或三个以上的文件之间跳转时,对我来说不太方便(因为我从未真正知道顺序超过那个范围)。 - launchoverit
1
下一个月底的更新中,将会添加按顺序导航工作文件(向前和向后)的命令。我还添加了关闭文件或关闭所有文件的命令。 - Benjamin Pasero
2
嘿,我15分钟前刚读了这个答案,然后看到弹出窗口“新版本!”,然后看到你更新了。Benjamin,你真是太棒了。到目前为止,我对VS Code团队印象非常深刻。 - JoeB
哦,天啊,我一直很烦恼找不到这个。谢谢!我已经习惯了Sublime的默认操作,只需轻敲cmd+p即可切换上次打开的文件,但这个更好用,我认为它增加了一点点的实用性。现在只需要训练肌肉记忆…… - chad_
自从这篇文章写出来以后,“更新”段落中的快捷键有改变吗?它们对我不起作用。(它会将光标移动到文件的顶部或底部。) - N. Virgo

41

对于 Mac 用户: 在菜单中选择 CodePreferencesKeyboard Shortcuts,打开 User/keybindings.json 文件。然后在方括号内添加:

{ "key": "shift+cmd+[",          "command": "workbench.action.previousEditor"},
{ "key": "shift+cmd+]",          "command": "workbench.action.nextEditor"}

这将绑定标准的Mac选项卡切换快捷键+shift+[+shift+],分别用于切换到上一个和下一个选项卡。在Visual Studio Code 1.3.1中进行了测试。

如果您更喜欢使用++++,那么它们的按键字符串为"cmd+alt+left""cmd+alt+right"。虽然从我的测试结果来看,Visual Studio Code 1.3.1默认已将其绑定到相应的命令,所以也许这个问题已经过时了?


6
现在似乎默认情况下,键盘组合 +++shift+[ 都绑定到 workbench.action.previousEditor 命令,相应的相反按键则绑定到 workbench.action.nextEditor - anishpatel

40

Ctrl + Page Up

可以用来向前浏览标签页。

Ctrl + Page Down

可以用来向后浏览标签页。

这是在顺序标签页导航中最好的答案。


这会对我很有帮助,我刚刚发现了这个替代方案,而且它也适用于其他程序! :D - Kenna

9

我习惯于使用键盘浏览编号标签页,就像在Google Chrome中一样。

cmd+1 # 第一个标签页

cmd+2 # 第二个标签页

等等。

我在Visual Studio Code中没有找到此设置。我可以将键映射到箭头键,以便逐个切换标签页。

[{
    "key": "cmd+shift+left",
    "command": "workbench.action.previousEditor"
}, {
    "key": "cmd+shift+right",
    "command": "workbench.action.nextEditor"
}]

这不是最佳选择,但可以胜任。


2
我需要与此相同的东西,cmd+1 -> #第一个标签页,以此类推,如何实现? - Mohd Shahid
2
@MohammadShahid和其他希望像在Chrome、Sublime等软件中一样使用cmd+1、cmd+2等功能的用户,你可以打开键盘快捷键并查找“workbench.action.openEditorAt...”部分,然后将其更改为cmd+1、cmd+2等等。这里有一个问题和截图:https://github.com/Microsoft/vscode/issues/24753#issuecomment-294518439 - k00k

8

在当前编辑组中跳转到所需选项卡的Linux默认绑定方式是:

Alt + 1
Alt + 2
...

要更改绑定方式,选择菜单 文件首选项键盘快捷键 → 搜索:openEditorAtIndex


在编辑组之间切换的Linux默认绑定方式是:

Ctrl + 1
Ctrl + 2
...

要更改绑定方式,选择菜单 文件首选项键盘快捷键 → 搜索:focusFirstEditorGroupfocusSecondEditorGroup等。


1
我认为在最近的Visual Studio Code版本中,键盘快捷键已经从“设置”中移除了。 - Peter Mortensen

7
我也对默认循环最近文件的行为感到恼怒,而不是正在工作的文件,但事实证明您可以重新映射键盘以使其工作方式略有不同。
要将Ctrl+TabCtrl+Shift+Tab映射为循环浏览工作文件,类似于其他版本的Visual Studio,请将以下内容添加到您的键绑定文件中:
[
  { "key": "ctrl+tab", "command": "workbench.files.action.openNextWorkingFile" },
  { "key": "ctrl+shift+tab", "command": "workbench.files.action.openPreviousWorkingFile" }
]

1
感谢这个解决办法!但是我想念“导航历史”中的用户界面。 - dotnetCarpenter
9
在Visual Studio Code 1.6.x中的变更:{ "key": "ctrl+tab", "command": "workbench.action.nextEditor" }, { "key": "ctrl+shift+tab", "command": "workbench.action.previousEditor" }注:该内容为Visual Studio Code配置中按键映射的部分,将"ctrl+tab"和"ctrl+shift+tab"按键与打开下一个/上一个编辑器的命令进行了绑定。 - Markus

6

使用开箱即用的窗口管理热键

在编辑器组之间

  • Ctrl + 1 到左侧
  • Ctrl + 2 到侧面
  • Ctrl + 3 到右侧
  • Ctrl + K Ctrl + Left 到左侧
  • Ctrl + K Ctrl + Right 到右侧

在编辑器组内

  • Ctrl + Tab 到下一个

5

按住 ctrl 键并使用 tab 键在文件之间导航,选择文件后松开 ctrl 键即可进入该文件。


ctrl + shift + Tab 则是用于向后导航。我正在使用 Windows 10。 - r0n9

4
在我的 Mac 上安装新的 VSCode 版本 1.36.1,需要按照以下步骤进行操作:
    {
        "key": "shift+cmd+[BracketLeft]",
        "command": "workbench.action.previousEditor"
    },
    {
        "key": "shift+cmd+[BracketRight]",
        "command": "workbench.action.nextEditor"
    }

3

虽然@ Mesco的回答仍然有效,但是默认绑定已更改为:

Ctrl + 1

Ctrl + 2

如果要更改它们的默认值,则必须执行以下操作:

  1. 首选项>键盘快捷方式
  2. 搜索:openEditorAtIndex
  3. 更改绑定到任何内容

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