在单个Visual Studio会话中打开文件的两个实例

时间:2009-04-08 07:58:03

标签: visual-studio editor

我有一个文件 xyz.cpp 。我想在Visual Studio中打开这个文件的两个实例(BTW,我正在使用Visual Studio 2005)。我为什么要这样做?我想并排比较同一文件的两个部分。我知道如下的解决方法:

  1. 制作文件的副本。但问题是它不优雅,每次我面对这个时我都不想复制。

  2. 我可以将窗口分成两部分。拆分它的问题我只能水平拆分它。水平分割的结果是屏幕的右半部分是空白区域。

  3. 如果我能够垂直拆分它或打开同一个文件的两个实例,它会增加我可以比较的代码行数。

15 个答案:

答案 0 :(得分:870)

这是怎么做的......

  1. 选择您想要两份
  2. 的标签
  3. 从菜单中选择菜单窗口新窗口
  4. 右键单击新选项卡,然后选择新建垂直选项卡组
  5. 如果*窗口菜单中未列出新窗口,请注意该命令确实存在,即使在Visual Studio 2017中也是如此。使用菜单将其添加到 Window 菜单工具自定义命令。此时决定将新窗口命令放在何处,然后选择添加命令

      “2018年7月30日”

    更新

    在Visual Studio代码版本1.25.1及更高版本中

    方式1

    您可以在侧面板(资源管理器)中左键单击文件,然后按 Ctrl + Enter

    方式2

    只需在Visual Studio代码侧面板(资源管理器)中右键单击您的文件,然后选择第一个选项打开到侧面

答案 1 :(得分:67)

对于Visual Basic,HTML和JScript以及RDL表达式,PaulB's answer中提到的Window > New Window选项被禁用。 但是,可以在注册表中更改选项以启用菜单项。

所有其他语言不限于单个代码窗口,因此您可以在不编辑注册表的情况下使用PaulB's answer

在Windows注册表中启用新窗口。 [1] [2]

  1. 转到以下注册表项。此示例适用于Basic(Visual Basic),但关键也适用于HTML,JScript和RDL表达式。

    • 64位操作系统:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • 32位操作系统:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. 找到值Single Code Window Only并执行以下操作之一:

    • 将其设为0
    • 重命名值
    • 删除值(谨慎使用!)
  3. 这将启用“新窗口”菜单项,但在菜单中可能仍然无法显示。

    添加菜单项

    要实际看到New Window菜单项,我必须将其添加回菜单:

    • 工具>自定义...>命令>添加命令...
    • 选择“菜单栏”,然后在下拉列表中选择“窗口”菜单
    • 添加命令...>窗口>新窗口>行

    恢复注册表值
    将其复制粘贴到记事本,另存为.reg文件并将文件导入注册表以恢复初始设置。

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic]
    "Single Code Window Only"=dword:00000001
    

答案 2 :(得分:18)

打开文件(如果您使用多个标签组,请确保选择了您的文件。)

菜单窗口拆分 (或者,在编辑器的垂直滚动条上方有一个小小的小块 - 抓住它并向下拖动)

这为您提供了同一文件的两个(水平)视图。请注意,任何编辑操作都会反映在两个视图上。

完成后,抓住拆分器并将其完全拖动(或菜单窗口删除拆分)。

答案 3 :(得分:17)

您可以使用 Windows 新窗口选项复制当前窗口。有关详情,请参阅: Why I like Visual Studio 2010? Undock Windows

答案 4 :(得分:10)

转到菜单 Windows 新窗口

Enter image description here

答案 5 :(得分:8)

Luke's answer对我不起作用。尽管删除了注册表设置,但“新窗口”命令已在自定义设置中列出,但未显示在.js选项卡上下文菜单中。

所以我用过:

工具

自定义...

...键盘

向下滚动以选择Window.NewWindow

我按下并分配了快捷键, Ctrl + Shift + W

这对我有用。

====编辑====

嗯,“工作”太强了。我的键盘快捷方式确实在同一个JavaScript文件上打开了另一个选项卡,但是无助于它不会呈现内容;它只是一个空白的窗户!你可能会有更好的运气。

答案 6 :(得分:3)

我认为

Window 菜单,新的水平/垂直标签组会有。

答案 7 :(得分:3)

对于较新版本(例如Visual Studio 2017)

  • 选择要复制的窗口。
  • 转到窗口标签,然后点击列表顶部的拆分。
  • 完成后,再次单击它以将其关闭。

答案 8 :(得分:3)

打开文件后,转到命令窗口(菜单视图其他Windows 命令窗口,或仅 Ctrl + Alt + A

类型:

Window.NewWindow

然后

Window.NewVerticalTabGroup

为我工作(Visual Studio 2017)。

或使用菜单:

菜单窗口新窗口

菜单窗口新的垂直点击组

答案 9 :(得分:2)

使用Visual Studio 2013和VB.NET时,我发现您可以非常轻松地自定义菜单并添加"新窗口"命令 - 没有必要乱用注册表!

上帝只知道为什么微软选择不包含某些语言的命令......?

答案 10 :(得分:1)

对于文件类型,在垂直选项卡组中打开相同文件 (例如.vb文件),您可以

  • 打开 2个不同的Visual Studio实例
  • 在每个实例中打开相同的文件
  • 调整IDE窗口的大小&将它们并排放置以实现您的布局。

如果您在一个实例中保存到磁盘,则必须在切换到另一个实例时重新加载该文件。此外,如果您在两个实例中进行编辑,则必须在第二次保存时解决。 Visual Studio在两种情况下都会提示您使用各种选项。如果仅在一个实例中进行编辑,则可以简化您的生活。

答案 11 :(得分:1)

我没有Visual Studio 2005的副本,但此过程适用于Visual Studio 2008:

  1. 打开xyz.cpp以及其他一些文件。
  2. 右键单击选项卡标题,然后选择新的垂直选项卡组。
  3. 左键单击第一个标签组中的其他文件。
  4. 再次通过解决方案资源管理器打开xyz.cpp。
  5. 现在,您应该在单独的垂直选项卡组中有两个文件实例。

答案 12 :(得分:0)

我想出了一个可能产生原始答案中的结果的黑客。

如果你在源控件的两个窗口中有你想要的文件,你可以右键单击该文件并选择比较,你可以比较

如果您进行比较,您将有一个名为diff的新窗口,显示您文件的内容。

这当然不太理想,因为差异窗口将使用差异颜色污染文本。 注意:您可以比较要打开的文件和空文件,然后您将使窗口处于非常丑陋的绿色背景中。

这不是完美的,它是一个黑客,但它是我发现在两个窗口中真正拥有相同文件的唯一方法。

答案 13 :(得分:0)

要在一个长文件的两部分上工作,只需使用快捷键(Ctrl + \)或在选定选项卡上单击拆分编辑器窗口。该图标位于VS Code的右上方。 enter image description here

答案 14 :(得分:0)

如何在Visual Studio 2019中并排打开同一文件的两个实例:

  1. 打开文件。

  2. 单击Window -> New Window

  3. 应该使用相同的文件打开一个新窗口。

  4. 单击Window -> New Vertical Document Group

结果: enter image description here