Öffnen Sie zwei Instanzen einer Datei in einer einzelnen Visual Studio-Sitzung


555

Ich habe eine Datei, xyz.cpp . Ich möchte zwei Instanzen dieser Datei in Visual Studio öffnen (übrigens verwende ich Visual Studio 2005). Warum sollte ich das tun wollen? Ich möchte zwei Abschnitte derselben Datei nebeneinander vergleichen. Ich kenne Problemumgehungen wie:

  1. Erstellen Sie eine Kopie der Datei. Aber das Problem ist, dass es nicht elegant ist und ich nicht jedes Mal Kopien machen möchte, wenn ich damit konfrontiert werde.

  2. Ich kann das Fenster in zwei Teile teilen. Das Problem beim Teilen ist, dass ich es nur horizontal teilen kann. Das Ergebnis einer horizontalen Teilung ist, dass die rechte Hälfte meines Bildschirms ein weißer Raum ist.

Wenn ich es vertikal teilen oder zwei Instanzen derselben Datei öffnen könnte, würde dies die Anzahl der Codezeilen erhöhen, die ich vergleichen kann.


12
Wenn Sie nur Teile der Datei vergleichen möchten, können Sie Window | verwenden Teilen, wodurch die Datei horizontal von der Mitte geteilt wird.
Vexe

@vexe Perfekt. Genau das, was ich brauchte. Teilt Fenster, wobei beide dieselbe Datei bearbeiten.
Vincent P

3
Gibt es einen Grund, warum Sie die Antwort mit der höchsten Bewertung nicht akzeptiert haben?
cp.engr

1
@ cp.engr, aus seinem Profil: "Zuletzt gesehen am 6. Dezember 09 um 12:41". Es ist eine Schande, dass Benutzer mit hohen Wiederholungszahlen Antworten nicht als akzeptiert markieren können.
Doktor Jones

Antworten:


904

So geht's ...

  1. Wählen Sie die Registerkarte aus, von der Sie zwei Kopien erhalten möchten
  2. Wählen Sie im Menü Menü FensterNeues Fenster .
  3. Klicken Sie mit der rechten Maustaste auf die neue Registerkarte und wählen Sie Neue vertikale Registerkartengruppe

Wenn im Menü * Fenster kein neues Fenster aufgeführt ist, beachten Sie, dass der Befehl auch ab Visual Studio 2017 vorhanden ist. Fügen Sie ihn über das Menü ExtrasAnpassenBefehle zum Menü Fenster hinzu . An diesem Punkt entscheiden Sie, wo der Befehl Neues Fenster abgelegt werden soll, und wählen Sie Befehl hinzufügen .

AKTUALISIERT am "30. Juli 2018"

In Visual Studio Code Version 1.25.1 und höher

Weg 1

Sie können einfach mit der linken Maustaste auf Ihre Datei im Seitenbereich (Explorer) klicken und Ctrl+ drücken Enter.

Weg 2

Klicken Sie einfach mit der rechten Maustaste auf Ihre Datei im Seitenbereich von Visual Studio Code (Explorer) und wählen Sie die erste seitlich geöffnete Option aus .


50
Wenn Sie wie bei einem zweiten Monitor über einen bestimmten Bildschirmbereich verfügen, können Sie die neue Registerkarte auch aus Visual Studio ziehen und beispielsweise im zweiten Monitor anzeigen.
Artur Carvalho

4
Sie können dies nur für bestimmte Dateitypen tun. Beispielsweise können nicht zwei Fenster für dieselbe .xaml-Datei geöffnet sein. Welches ist ein Mist, denn das ist, was ich tun möchte!
Plots

4
@ Shlomi.A. Versuchen Sie Lukes Antwort
Jason S

2
Für XAML in WPF ist die Option Neues Fenster einfach nicht vorhanden.
Preza8

2
Diese Methode funktioniert, aber auf meinem VS 2010 war die Verknüpfung [Strg] [Umschalt] [N] an Datei> Neu> Projekt
Benutzer1556435

67

Für Visual Basic, HTML, JScript und RDL Expression ist die Window > New Windowin der Antwort von PaulB erwähnte Option deaktiviert. In der Registrierung kann jedoch eine Option geändert werden, um den Menüpunkt zu aktivieren.

Alle anderen Sprachen beschränken sich nicht auf ein einziges Codefenster, sodass Sie die Antwort von PaulB verwenden können, ohne die Registrierung zu bearbeiten.

Neues Fenster in der Windows-Registrierung aktivieren. [ 1 ] [ 2 ]

  1. Gehen Sie zum folgenden Registrierungsschlüssel. Dieses Beispiel ist für Basic (Visual Basic), aber der Schlüssel ist auch für HTML-, JScript- und RDL-Ausdruck vorhanden.

    • 64-Bit-Betriebssystem: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • 32-Bit-Betriebssystem: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Finde den Wert Single Code Window Only und führen Sie einen der folgenden Schritte aus:

    • Setzen Sie es auf 0
    • Benennen Sie den Wert um
    • Löschen Sie den Wert ( Vorsicht !)

Dadurch wird der Menüpunkt "Neues Fenster" aktiviert, der jedoch möglicherweise immer noch nicht im Menü angezeigt wird.

Menüelement hinzufügen

Um den Menüpunkt Neues Fenster tatsächlich zu sehen, musste ich ihn wieder in das Menü einfügen:

  • Extras> Anpassen ...> Befehle> Befehl hinzufügen ...
  • Wählen Sie "Menüleiste" und wählen Sie das Menü "Fenster" in der Dropdown-Liste
  • Befehl hinzufügen ...> Fenster> Neues Fenster> OK

Wiederherstellen des Registrierungswerts
Kopieren Sie diesen Editor, speichern Sie ihn als REG-Datei und importieren Sie die Datei in Ihre Registrierung, um die ursprüngliche Einstellung wiederherzustellen.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"Nur Einzelcodefenster" = dword: 00000001

Die Registrierung für C # -Dateien muss nicht bearbeitet werden, da der Menüpunkt "Neues Fenster" für C # -Dateien bereits aktiviert sein sollte (in VS 2010). Sie müssen dies nur für VB, HTML oder JScript tun. Laut diesem MS Connect-Problembericht sind alle Probleme damit für VB behoben. Sie müssen lediglich den Registrierungseintrag entfernen oder umbenennen, um die Funktion zu aktivieren.
Jason S

1
Dies funktioniert auch in Visual Basic 2010 Express. Der Registrierungsschlüssel unterscheidet sich geringfügig: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
böse Löffel

Funktioniert bei mir nicht Versucht, VS2010 neu zu starten, gibt es eine weitere Chance nach dem Neustart des Computers ... (wer weiß, wie Registrierungseinträge gelesen / gespeichert / aktualisiert werden)
Mars Robertson

Ich habe das gerade getestet (ich glaube, mein Registrierungsschlüssel wurde durch Updates oder ähnliches überschrieben). Ich habe keinen Neustart benötigt. Ich habe den Schlüssel bei laufendem VS2010 geändert. 'Neues Fenster' ist immer noch ausgegraut. Dann VS2010 geschlossen und VS2010 geöffnet und 'Neues Fenster' ist verfügbar.
Luke Hoffmann

3
In VS2010 ermöglicht das Umdrehen des Registrierungsbits für JScript das Öffnen einer zweiten Registerkarte für eine JavaScript-Datei (yay), aber in jeder Registerkarte (boo) wird nur das Weiß gerendert.
G-Wiz

18

Öffnen Sie die Datei (wenn Sie mehrere Registerkartengruppen verwenden, stellen Sie sicher, dass Ihre Datei ausgewählt ist).

Menü FensterSplit (alternativ gibt es diese winzige Noppe nur über die vertikale Bildlaufleiste des Editor - greifen sie und ziehen Sie nach unten)

Dadurch erhalten Sie zwei (horizontale) Ansichten derselben Datei. Beachten Sie, dass alle Bearbeitungsaktionen beide Ansichten widerspiegeln.

Sobald Sie fertig sind, greifen Sie den Splitter und ziehen Sie es auf den ganzen Weg (oder Menü - Fensterentfernen Split ).


2
(Sri: Entschuldigung, 'horizontal' wie in den Ansichten 'Zeilen sind ausgerichtet ... oder eine Ansicht über der anderen). AFAIK, vertikale Ansichten (nebeneinander) sind nicht möglich.

7
Scheint OP nicht gelesen zu haben, wo er erwähnt, dass er sich genau dieser Sache bewusst ist.
Jason S



9

Lukes Antwort hat bei mir nicht funktioniert. Der Befehl 'Neues Fenster' wurde bereits in den Anpassungseinstellungen aufgeführt, wird jedoch trotz Löschen der Registrierungseinstellung nicht im Kontextmenü der Registerkarten .js angezeigt.

Also habe ich verwendet:

Werkzeuge

Anpassen...

Tastatur...

Scrollen Sie nach unten, um Window.NewWindow auszuwählen

Und ich habe die Tastenkombinationen Ctrl+ Shift+ gedrückt und zugewiesen W.

Das hat bei mir funktioniert.

==== BEARBEITEN ====

Nun, "gearbeitet" war zu stark. Meine Tastenkombination öffnet zwar eine weitere Registerkarte in derselben JavaScript-Datei, rendert jedoch den Inhalt nicht hilfreich. Es ist nur ein leeres weißes Fenster! Sie können besseres Glück haben.


3
Vielen Dank. Dies funktionierte bei mir für VS2012 / VB.net. Geöffnete Tools - Optionen - (unter Umgebung) Tastatur - Wählen Sie Visual Basic 6 aus der Dropdown-Liste - Wählen Sie Window.NewWindow aus der Befehlsliste - Drücken Sie Strg + N, Strg + W
CodingSlayer

8

Gehen Sie bei geöffneter Datei zum Befehlsfenster (Menü AnsichtAndere FensterBefehlsfenster oder einfach Ctrl+ Alt+ A).

Art:

Window.NewWindow

Und dann

Window.NewVerticalTabGroup

arbeitete für mich (Visual Studio 2017).

Oder mit Menüs:

Menü FensterNeues Fenster

Menü FensterNeue vertikale Hahn Gruppe


Du hast mit diesem Herrn, dem Sohn, gearbeitet. Vielen Dank.
Andrew

4

Fenstermenü , neue horizontale / vertikale Registerkarte Gruppe wird es tun, denke ich.


3
AFAI sehen, Sie können nicht die gleiche Datei in verschiedenen Registerkartengruppen öffnen
Gishu

3

Bei der Arbeit mit Visual Studio 2013 und VB.NET habe ich festgestellt, dass Sie das Menü ganz einfach anpassen und den Befehl "Neues Fenster" hinzufügen können - Sie müssen sich nicht mit der Registrierung herumschlagen!

Gott weiß nur, warum Microsoft den Befehl für einige Sprachen nicht aufgenommen hat ...?


Arbeitete leicht für mich! Menü Extras > Anpassen . Dann in Befehle Registerkarte, wählen Sie Fenster in der ersten Dropdown - Liste klicken Sie dann auf Befehl hinzufügen Schaltfläche und voilà! (Visual Studio 2019)
Cyberponk

3

Für neuere Versionen (wie Visual Studio 2017)

  • Wählen Sie das Fenster aus, das Sie duplizieren möchten.
  • Gehen Sie zur Registerkarte Fenster und klicken Sie oben in der Liste auf Teilen.
  • Wenn Sie fertig sind, klicken Sie erneut darauf, um es auszuschalten.

3
Ein in zwei Hälften geteiltes Fenster ist nicht dasselbe wie zwei Fenster.
Tipx

1

Für Dateitypen, bei denen dieselbe Datei nicht in einer vertikalen Registerkartengruppe geöffnet werden kann (z. B. .vb-Dateien), können Sie dies tun

  • Öffnen Sie zwei verschiedene Instanzen von Visual Studio
  • Öffnen Sie in jeder Instanz dieselbe Datei
  • Ändern Sie die Größe der IDE-Fenster und platzieren Sie sie nebeneinander, um Ihr Layout zu erhalten.

Wenn Sie jedoch in einer Instanz auf der Festplatte speichern, müssen Sie die Datei neu laden, wenn Sie zur anderen wechseln. Auch wenn Sie in beiden Fällen Änderungen vornehmen, müssen Sie beim zweiten Speichern eine Auflösung vornehmen. Visual Studio fordert Sie in beiden Fällen mit verschiedenen Optionen auf. Sie werden Ihr Leben ein wenig vereinfachen, wenn Sie nur in einer Instanz bearbeiten.


@ Odrade - Können Sie mich auf die richtige Antwort verweisen, die für alle Arten von Dateien funktioniert ...
Gishu

@Jason Ok, aber es ist immer noch falsch zu behaupten, dass Sie dieselbe Datei nicht mehrmals öffnen können, um sie nebeneinander zu vergleichen. Dies ist zumindest für CS-Dateien eindeutig möglich.
Odrade

@ Odrade Du hast recht. Ich habe bearbeitet, um das zu korrigieren. Informieren Sie sich, falls Sie Kommentare entfernen möchten, die auf früheren Versionen basieren.
Jason S

@Odrade Ich habe versucht, Lukes Antwort zu versuchen. Es ist weitaus besser, als zwei Instanzen von VS für VB-Benutzer zu öffnen, und ich habe meine Zustimmung.
Jason S

Dies scheint die einzige funktionierende Problemumgehung für HTML-Dateien zu sein, bei der die Registrierung nur ein leeres zweites Fenster ergibt
Chris F Carroll

1

Ich habe keine Kopie von Visual Studio 2005, aber dieser Vorgang funktioniert in Visual Studio 2008:

  1. Öffnen Sie xyz.cpp zusammen mit einer anderen Datei.
  2. Klicken Sie mit der rechten Maustaste auf die Registerkartenüberschrift und wählen Sie eine neue vertikale Registerkartengruppe aus.
  3. Klicken Sie mit der linken Maustaste auf diese andere Datei in der ersten Registerkartengruppe.
  4. Öffnen Sie xyz.cpp erneut über den Solution Explorer.

Sie sollten jetzt zwei Instanzen von Dateien in separaten vertikalen Registerkartengruppen haben.


Auf meinem VS2K5 und VS2K8 werden nur die ursprünglichen Instanzen auf der zweiten Registerkarte für mich angezeigt. Dies ist der Fall, wenn ich im Projektmappen-Explorer, Drag & Drop aus dem Datei-Explorer oder über Datei | doppelklicke Menü öffnen.
Simeon Pilgrim

@Simeon - Das passiert, wenn keine andere Datei geöffnet ist (2. Teil von Schritt 1.)
si618

Es ist bekannt, dass die Originaldatei in der anderen Registerkartengruppe geöffnet ist. Möglicherweise bezieht sich dies erneut auf die Dateien, die dupliziert werden dürfen.
Neoswf

0

Ich habe mir einen Hack ausgedacht, der das in der ursprünglichen Antwort vorgesehene Ergebnis liefern könnte.

Wenn Sie die gewünschte Datei in zwei Fenstern in einem Quellcodeverwaltungselement haben, können Sie mit der rechten Maustaste auf die Datei klicken und Vergleichen auswählen. Sie können die Datei vergleichen

Wenn Sie vergleichen, wird ein neues Fenster namens Diff angezeigt, in dem der Inhalt Ihrer Datei angezeigt wird.

Dies ist natürlich nicht ideal, da im Diff-Fenster die Diff-Farben den Text verschmutzen. Hinweis: Sie können die Datei, mit der Sie öffnen möchten, mit einer leeren Datei vergleichen. Anschließend wird das Fenster in einem sehr hässlichen grünen Hintergrund angezeigt.

Dies ist nicht perfekt, es ist ein Hack, aber es war der einzige Weg, auf dem ich wirklich die gleiche Datei in zwei Fenstern gefunden habe.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.