我有一个文件xyz.cpp。我想在Visual studio中打开这个文件的两个实例(顺便说一下,我使用Visual studio 2005)。我为什么要这么做?我想并排比较同一文件的两个部分。我知道一些变通方法,比如:

复制一份文件。但问题是它并不优雅,我不想每次遇到这种情况都复制。 我可以把窗户劈成两半。分割的问题是只能水平分割。水平分割的结果是屏幕的右半部分是空白。

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


窗口菜单,新建水平/垂直标签组就可以了。


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

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

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


我没有Visual Studio 2005的拷贝,但是这个过程在Visual Studio 2008上是有效的:

打开xyz.cpp和其他文件。 右键单击标签页头并选择新的垂直标签组。 左键单击第一个选项卡组中的其他文件。 再次通过解决方案资源管理器打开xyz.cpp。

现在您应该在独立的垂直选项卡组中有两个文件实例。


打开文件(如果您正在使用多个选项卡组,请确保您的文件被选中)。

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

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

一旦你完成了,抓住分割器,并一直往上拖动(或菜单窗口→删除分割器)。


以下是如何做到这一点…

选择需要两个副本的选项卡 在菜单中选择菜单窗口→新建窗口。 右键单击新选项卡并选择新建垂直选项卡组

如果“*Window”菜单中没有列出“新建窗口”,请注意该命令确实存在,即使在Visual Studio 2017中也是如此。使用菜单工具→自定义→命令将其添加到窗口菜单。在这一点上,决定把新建窗口命令放在哪里,并选择添加命令。

2018年7月30日更新

在Visual Studio Code版本1.25.1及更高版本中

方法1

您可以简单地在侧面板(资源管理器)中单击您的文件并按Ctrl + Enter。

方法2

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


对于Visual Basic, HTML和JScript和RDL Expression, PaulB的回答中提到的Window > New Window选项是禁用的。 但是,可以在注册表中更改选项以启用菜单项。

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

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

转到以下注册表项。这个例子是为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 找到值单代码窗口,并执行以下操作之一: 设置为0 重命名值 删除该值(小心!)

这将启用“新建窗口”菜单项,但它可能仍然不可见在菜单中。

添加菜单项

要真正看到新建窗口菜单项,我必须将它添加回菜单:

工具>自定义…>命令>添加命令… 选择“菜单栏”,在下拉菜单中选择“窗口”菜单 添加命令…>窗口>新建窗口> OK

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

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

卢克的回答对我不起作用。“新建窗口”命令已经在自定义设置中列出,但在.js选项卡上下文菜单中没有显示,尽管删除了注册表设置。

所以我用了:

工具

自定义…

键盘…

向下滚动选择“窗口”。NewWindow

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

这对我很管用。

====编辑====

“工作”这个词太强烈了。我的键盘快捷键确实在同一个JavaScript文件上打开了另一个选项卡,但它没有显示内容;它只是一扇空的白色窗户!你可能会有更好的运气。


当使用Visual Studio 2013和VB时。NET我发现你可以很容易地自定义菜单和添加“新建窗口”命令-没有必要打乱注册表!

天知道为什么微软选择不包括一些语言的命令…?


您可以使用Windows→新建窗口选项来复制当前窗口。参见:为什么我喜欢Visual Studio 2010?出坞的窗户


对于更新版本(如Visual Studio 2017)

选择要复制的窗口。 转到窗口选项卡,单击列表顶部的split。 完成后,再次单击以关闭它。


进入菜单→窗口→新建窗口:


打开文件后,进入命令窗口(菜单视图→其他窗口→命令窗口,或者按Ctrl + Alt + A)

类型:

Window.NewWindow

然后

Window.NewVerticalTabGroup

为我工作过(Visual Studio 2017)。

或者使用菜单:

菜单窗口→新建窗口

菜单窗口→新建垂直点击组


要处理一个长文件的两个部分,只需使用快捷键(Ctrl + \)或在所选选项卡上单击拆分编辑器窗口。该图标位于Visual Studio代码的右上角。


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

打开文件。 单击“窗口→新建窗口”。 应该会打开一个带有相同文件的新窗口。 点击窗口→新建垂直文档组。

结果: