首页 文章

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

提问于
浏览
511

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

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

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

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

13 回答

  • 67

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

    • 选择您想要两份副本的选项卡

    • 从菜单中选择菜单窗口→新建窗口 .

    • 右键单击新选项卡,然后选择“新建垂直选项卡组”

    如果*窗口菜单中未列出新窗口,请注意该命令确实存在,即使在Visual Studio 2017中也是如此 . 使用菜单工具→自定义→命令将其添加到窗口菜单 . 此时决定放置New Window命令的位置并选择Add Command .

    更新于“2018年7月30日”

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

    Way 1

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

    Way 2

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

  • 0

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

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

    Enabling New Window in Windows Registry. [1] [2]

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

    • 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

    • 找到值 Single Code Window Only 并执行以下操作之一:

    • 将其设置为0

    • 重命名该值

    • 删除值( use caution !)

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

    Adding Menu Item

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

    • 工具>自定义...>命令>添加命令...

    • 选择'Menu Bar'在下拉列表中选择'Window'菜单

    • 添加命令...>窗口>新窗口>确定

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

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

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

    菜单窗口→拆分(交替地,有's this tiny nub just above the editor' s垂直滚动条 - grab 并向下拖动)

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

    完成后, grab 拆分器并将其完全拖动(或菜单窗口→删除拆分) .

  • 855

    您可以使用Windows→新窗口选项复制当前窗口 . 查看更多:Why I like Visual Studio 2010? Undock Windows

  • 18

    Luke's answer didn 't work for me. The '新窗口'命令已在自定义设置中列出,但未显示在.js标签上下文菜单中,尽管删除了注册表设置 .

    所以我用过:

    工具

    定制...

    键盘...

    向下滚动以选择Window.NewWindow

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

    这对我有用 .

    ====编辑====

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

  • 16

    转到菜单→Windows→新窗口:

    Enter image description here

  • 8

    我认为,窗口菜单,新的水平/垂直标签组会有 .

  • 8

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

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

  • 2

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

    • 选择要复制的窗口 .

    • 转到窗口选项卡,然后单击列表顶部的拆分 .

    • 完成后,再次单击它以将其关闭 .

  • 2

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

    • 打开 2 different instances of Visual Studio

    • 在每个实例中打开相同的文件

    • 调整IDE窗口的大小并将它们并排放置以实现布局 .

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

  • 1

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

    • 打开xyz.cpp以及其他一些文件 .

    • 右键单击选项卡 Headers ,然后选择新的垂直选项卡组 .

    • 左键单击第一个选项卡组中的其他文件 .

    • 再次通过解决方案资源管理器打开xyz.cpp .

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

  • 1

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

    类型:

    Window.NewWindow
    

    然后

    Window.NewVerticalTabGroup
    

    为我工作(Visual Studio 2017) .

    或者使用菜单:

    菜单窗口→新窗口

    菜单窗口→新的垂直抽头组

  • 1

    我提出了一个可能产生原始答案中的结果的黑客攻击 .

    如果您在源控件中的两个窗口中有所需的文件,则可以右键单击该文件并选择比较,您可以比较

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

    这当然不是理想的,因为差异窗口将具有污染文本的差异颜色 . 注意:您可以比较要打开的文件和空文件,然后您将在非常丑陋的绿色背景中显示窗口 .

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

相关问题