Visual Studio Code 在另一个屏幕上(浮动)打开新窗口的选项卡。

616
我正在尝试在Visual Studio Code中打开一个新窗口的标签,以便将其移动到另一个屏幕上。如果我拖动标签到另一个屏幕,会创建一个文件。是否有快捷键可以打开一个新的Visual Studio Code窗口的标签,以便将其移动到另一个屏幕上?

23
浮动窗口支持的功能请求:https://github.com/Microsoft/vscode/issues/10121。 - Roy Tinker
1
请尝试以下链接作为解决方法:[https://superuser.com/questions/1319288/vs-code-drag-tab-to-new-window/1319353#1319353?newreg=db761e3f719d484bb621b7d2b2f1e269] - Miles Buckton
与 https://dev59.com/4V0a5IYBdhLWcg3wxbHm#29965036 相关,已在 Meta https://meta.stackoverflow.com/questions/378537/why-was-my-edit-adding-information-from-another-question-rejected/378538 进行讨论,可能会合并。 - Slate
6
四年后... - jeugregg
3
现在是2023年了! - halfdanr
13个回答

1151

在Windows和Linux上,按下CTRL+K,然后松开这些键并按下O(字母O,而不是零)。

在macOS上,按下CMD+K,然后按下O(不需要按住CMD)。

这将在一个新的窗口/实例中打开当前文件标签页。


37
在我的情况下,按下 Ctrl+K O 打开选择文件夹对话框。 - doorman
141
先按下 Ctrl+K,然后松开,再按下 O :) - kaijun
193
应该会更容易一些。我只需要把选项卡拖到一个空白的地方,它就会打开。拖拽文件是一个不太有用的功能。 - light24bulbs
41
这个开发工具真的太笨拙了,让人感到十分恼火。它甚至没能关闭现有的标签页(现在我有两份副本打开了)! - charles-allen
44
虽然这个功能很方便,但我想提醒任何有疑问的人,它只是在新的 VS Code 实例中打开了同一个文件。更改也不会跨实例持久化保存。如果我在一个实例中打开了一个 Markdown 文档,然后按下 "ctrl-k, o",它会在一个新的 VS Code 实例中打开相同的 Markdown 文档,在一个屏幕上打开预览,在另一个实例中所做的更改将不会反映在预览中,即使已保存。 - Steve Eggering
显示剩余17条评论

222
这是一个在Github上非常受欢迎的悬浮窗问题请求
在他们支持之前,您可以尝试以下解决方法
1. 在新窗口中复制工作区[1] - 打开键盘快捷方式 Ctrl + K, Ctrl + S - 将workbench.action.duplicateWorkspaceInNewWindow映射到Ctrl + Shift + N或其他您喜欢的快捷键。

Duplicate Workspace in New Window

2. 在新窗口中打开活动文件 [2]

不需要手动打开新窗口并拖动文件,你可以只用一个命令完成所有操作。

  1. 在新窗口中打开活动文件 Ctrl + K, O

Open Active File in New Window

3. 同一文件新窗口打开 [3]

如AllenBooTung所指出的,您可以在单独的空白实例中打开/拖动任何文件。

  1. 打开新窗口 Ctrl + Shift + N
  2. 将选项卡拖入新窗口

4. 同时打开工作区和文件夹 [4]

VS Code不允许您在两个不同的实例中打开相同的文件夹,但是您可以使用工作区在并排的实例中打开相同的文件夹。

  1. 打开文件夹 Ctrl + K,Ctrl + O
  2. 将当前项目另存为工作区
  3. 打开文件夹 Ctrl + K,Ctrl + O

对于任何解决方法,还要考虑设置自动保存以便通过更新files.autoSave设置为afterDelayonFocusChangeonWindowChange来保持文档同步。

AutoSave


12
三年过去了,一个非常受欢迎的问题仍然没有解决。 - icguy
1
这对我来说突然出现了一个真正的问题。当我打开第二个窗口时,该实例没有工作目录。这使得我的所有语法检查器都变得疯狂,因为它们找不到引用。 - Jamie Marshall
2
在被添加到待办事项列表6年后,被锁定3年后,这仍然是存储库中最受评论的问题。我正在认真考虑因此回到Atom。 - zoltankundi
很遗憾,无法进行调试;__; 新窗口或工作区不知道另一个窗口或工作区的信息。例如,断点不会同步。我希望在一个屏幕上有本地变量,而在另一个屏幕上有我的代码,因为它们不能与垂直监视器并排放置。 - FrostKiwi
1
仍然开放和锁定。我们甚至无法在上面投票了。被卡在积压中并被忽视。 - John Demetriou

41

当我想要分屏时,通常会采取以下两种方法之一:

  1. 使用Ctrl+Shift+N打开新窗口
    然后将我想要的当前文件拖到新窗口中。
  2. 在文件资源管理器中,我按下Ctrl+Enter键选中我想要的文件,然后这个文件和另一个文件就会以分屏模式同时在同一个屏幕上打开,这样你可以同时看到两个文件。如果屏幕足够宽,这并不是一个坏的解决方案,你会逐渐适应。

5
谢谢 @nisanarz,这个方法有效,但我认为如果能像 Visual Studio 一样弹出窗口会更方便。此外,在搜索和打开新文件时,新窗口应该作用于同一代码库。 - doorman
其他选项无法与未保存的文件一起使用。这个可以正常工作。 - Artur Carvalho
我是说,这个问题怎么还没有解决?我知道这不是一个集成开发环境,但是很多集成开发环境都可以轻松地将选项卡拖到窗口外面,自动创建一个新窗口。 - John Demetriou
这只是复制文件并创建一个新文件。如果有的话,它不会保留当前的更改。 - undefined

19

不幸的是,它对终端选项卡无效。 - Hossein

11

如果已经接受的答案对你不起作用,比如你的快捷键可能已被更改以执行其他操作。你可以通过按下Ctrl + Shift + P启动命令输入,然后输入“新建窗口”,你会看到结果File: Open active tab in a new window,选择它即可。


1
官方答案应该被这个更新。 - nđq
这对于Jupyter笔记本不起作用。 - undefined

7
按下 Command+K(等待,在下面的状态栏中可以看到等待按下任意键)然后按 O 键。 所以,它是 Cmd+k+ O (空格表示稍等片刻)。

3
这是之前答案的重复。 - paperskilltrees
我确实喜欢状态栏消息的澄清 :) - VibrationPositive
这确实让我更好地理解了实际发生的事情...谢谢! - undefined

5

更新于2019年2月1日:在Mac上按下cmd+shift+n现在会打开一个新窗口,您可以将选项卡拖动到其中。在阅读KyleMit的回答并发现他的键映射建议已经映射到正确的操作之前,我没有发现这一点。


1
这与复制工作区不同,因为您的 linters 不会加载任何库的依赖项或函数。新窗口可以让您查看文件,但缺少工作区的所有功能。 - mbomb007

5
我发现一种通过命令行实现@mbomb007的解决方法中“在新窗口中复制工作区”的方式的方法:
通常,如果该文件夹是现有窗口的根,则 code --new-window 不会打开新窗口。 code --new-window 后跟 code--add 成功。我在这些命令之间放了1秒的延迟。
问题#2686已关闭,并建议用户使用“在新窗口中复制工作区”的流程,但没有包括CLI解决方案。我本应在那里发布此解决方法,但它被锁定了。

3
我想使用我的第二个屏幕来预览文档,但是所有的建议都不太好用,因为即使工作区被复制并启用了自动保存,预览也没有在第二个窗口中更新。
我的解决方法是简单地增加窗口的大小以跨越两个屏幕,并使用标准的分割选项卡。
要将一个窗口扩展到两个屏幕,我建议使用 Microsoft PowerToys。FancyZones 功能可以配置允许区域跨越监视器,因此可以创建自定义画布,快速将单个窗口扩展到两个屏幕。

0
VS Code团队目前正在最新的VS Code Insiders(1.83版本发布说明)中尝试实现浮动窗口。引用自1.83版本发布说明:
所有窗口中的所有编辑器都使用相同的底层编辑器模型,因此在一个窗口中进行的更改会实时反映在所有其他窗口中。您可以在浮动窗口中创建任何编辑器布局,并打开任何您喜欢的编辑器,以及您想要的窗口数量。
对于我们的第一个工作版本,我们设想状态栏也会出现在浮动窗口中,以显示编辑器信息,例如行号和选择范围。请继续关注未来几个月的更多开发进展!
目前,有一个名为"View: Move Active Editor into a New Window (Experimental)"的命令,ID为"workbench.action.experimentalMoveEditorIntoNewWindowAction"(如果您想将键盘快捷键绑定到它)。
你可以通过在问题跟踪器中使用“工作台辅助窗口”标签来筛选与此功能相关的所有问题票。
我会尽量及时更新这个答案,以反映这些进展。
就目前而言,在VS Code的稳定版本中,我看到的最好的解决方法是使用“文件:在新窗口中打开活动文件”命令,该命令默认绑定为ctrl/cmd+k,o,或者手动打开一个新窗口,然后将编辑器拖到那里。但这些方法并不理想,因为文件将会独立打开,没有任何来自打开文件所在工作区的上下文(没有工作区设置、为该工作区启用的扩展、工作区任务、该工作区的项目配置等等)。如果你不想遇到这个问题,那么你可以在新窗口中打开相同的工作区。我猜这样做的缺点可能是它可能会使用更多的系统资源(例如扩展主机、文件系统监视器来保持多个具有相同工作区的窗口同步等等)。
我想借此机会强调一下问题单中的评论,这些评论解释了为什么这个问题很难解决/实现这个功能(说真的,这就是为什么我告诉大家不要发表“+1”/“顶一下”的评论。那个帖子就像一个沼泽,如果你想找到有意义的讨论,简直是一场噩梦)。 根据维护者的说法,挑战主要来自于复杂的架构变更和保持良好的性能(source)。

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