Apri due istanze di un file in una singola sessione di Visual Studio


555

Ho un file, xyz.cpp . Voglio aprire due istanze di questo file in Visual Studio (A proposito, sto usando Visual Studio 2005). Perché dovrei volerlo fare? Voglio confrontare due sezioni dello stesso file fianco a fianco. Conosco soluzioni alternative come:

  1. Crea una copia del file. Ma il problema è che non è elegante e non voglio fare copie ogni volta che mi trovo di fronte a questo.

  2. Posso dividere la finestra in due. Il problema con dividerlo è che posso dividerlo solo in orizzontale. Il risultato di una divisione orizzontale è che la metà destra del mio schermo è uno spazio bianco.

Se fossi in grado di dividerlo verticalmente o aprire due istanze dello stesso file, aumenterebbe il numero di righe di codice che posso confrontare.


12
Se vuoi semplicemente confrontare parti del file, puoi usare Window | Dividi che divide il file in orizzontale dal centro.
vexe,

@vexe Perfect. Esattamente quello di cui avevo bisogno. Suddivide le finestre, modificando entrambe lo stesso file.
Vincent P,

3
Qualche motivo per cui non hai accettato la risposta più votata?
cp.engr

1
@ cp.engr, dal suo profilo: "Ultimo accesso il 6 dicembre 2009 alle 12:41". È un peccato che gli utenti di alto livello non possano contrassegnare le risposte come accettate.
Dottore Jones,

Risposte:


904

Ecco come farlo ...

  1. Seleziona la scheda di cui desideri due copie
  2. Selezionare il menu FinestraNuova finestra dal menu.
  3. Fare clic con il tasto destro sulla nuova scheda e selezionare Nuovo gruppo di schede verticali

Se Nuova finestra non è elencata nel menu * Finestra, nota che il comando esiste, anche da Visual Studio 2017. Aggiungilo al menu Finestra usando il menu StrumentiPersonalizzaComandi . A quel punto decidi dove inserire il comando Nuova finestra e seleziona Aggiungi comando .

AGGIORNATO il "30 luglio 2018"

In Visual Studio Code versione 1.25.1 e successive

Modo 1

Puoi semplicemente fare clic con il pulsante sinistro del mouse sul file nel riquadro laterale (Esplora risorse) e premere Ctrl+ Enter.

Modo 2

Basta fare clic con il pulsante destro del mouse sul file nel pannello laterale di Visual Studio Code (Explorer) e selezionare la prima opzione aperta sul lato .


50
Se disponi di uno spazio sullo schermo disponibile come un secondo monitor, puoi anche trascinare la nuova scheda da Visual Studio e vederla, ad esempio, nel secondo monitor.
Artur Carvalho,

4
Puoi farlo solo per determinati tipi di file ... ad esempio, non puoi avere due finestre aperte sullo stesso file .xaml. Che è un peccato, perché è quello che voglio fare!
complotta il

4
@ Shlomi.A. Prova la risposta di Luke
Jason S,

2
Per XAML in WPF l'opzione Nuova finestra non è presente.
Preza8

2
Questo metodo funziona, ma sul mio VS 2010 il collegamento [Ctrl] [Shift] [N] era associato a File> Nuovo> Progetto
user1556435

67

Per Visual Basic, HTML e JScript ed espressione RDL, l' Window > New Windowopzione menzionata nella risposta di PaulB è disabilitata. Tuttavia, è possibile modificare un'opzione nel Registro di sistema per abilitare la voce di menu.

Tutte le altre lingue non si limitano a un'unica finestra di codice, quindi è possibile utilizzare la risposta di PaulB senza modificare il registro.

Abilitazione di una nuova finestra nel registro di Windows. [ 1 ] [ 2 ]

  1. Vai alla seguente chiave di registro. Questo esempio è per Basic (Visual Basic), ma la chiave è presente anche per HTML, JScript e RDL Expression.

    • Sistema operativo a 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • Sistema operativo a 32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Trova il valore Single Code Window Onlyed effettua una delle seguenti operazioni:

    • Impostalo su 0
    • Rinomina il valore
    • Elimina il valore ( fai attenzione !)

Ciò abiliterà la voce di menu "Nuova finestra", ma potrebbe non essere ancora visibile nel menu.

Aggiunta di una voce di menu

Per vedere effettivamente la voce di menu Nuova finestra ho dovuto aggiungerlo di nuovo nel menu:

  • Strumenti> Personalizza ...> Comandi> Aggiungi comando ...
  • Seleziona "Barra dei menu", seleziona il menu "Finestra" nel menu a discesa
  • Aggiungi comando ...> Finestra> Nuova finestra> OK

Ripristino del valore di registro
Copia e incolla questo nel blocco note, salvalo come file .reg e importa il file nel registro per ripristinare l'impostazione iniziale.

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ Languages ​​\ Language Services \ Basic]
"Solo finestra con codice singolo" = dword: 00000001

Non è necessario modificare il registro per i file C # poiché la voce di menu "Nuova finestra" dovrebbe essere già abilitata per i file C # (in VS 2010). Devi solo farlo per VB, HTML o JScript. In base a questo problema segnalato da MS Connect, eventuali problemi vengono risolti per VB, è sufficiente rimuovere o rinominare la voce di registro per abilitare la funzione.
Jason S,

1
Funziona anche con Visual Basic 2010 Express, sono felice di segnalarlo. La chiave di registro è leggermente diversa: [HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ VBExpress \ 10.0 \ Languages ​​\ Language Services \ Basic].
Evilspoons

Non funziona per me. Ho provato a riavviare VS2010, ci darà un'altra possibilità dopo il riavvio del computer ... (chissà come vengono lette / memorizzate / aggiornate le voci del registro)
Mars Robertson

Ho appena provato questo (suppongo che la mia chiave di registro sia stata sovrascritta da aggiornamenti o qualcosa del genere). Non ho richiesto un riavvio. Ho cambiato la chiave con VS2010 in esecuzione, 'Nuova finestra' è ancora in grigio. Quindi chiuso VS2010 e aperto VS2010 ed è disponibile "Nuova finestra".
Luke Hoffmann,

3
In VS2010, capovolgere il bit di registro per JScript consente di aprire una seconda scheda per un file JavaScript (yay), ma in ciascuna scheda (boo) non viene visualizzato nulla tranne il bianco.
G-Wiz,

18

Apri il file (se stai utilizzando più gruppi di schede, assicurati che il file sia selezionato).

Finestra del menu → Dividi (in alternativa, c'è questo piccolo nub appena sopra la barra di scorrimento verticale dell'editor - prendilo e trascina verso il basso)

Questo ti dà due viste (orizzontali) dello stesso file. Attenzione che qualsiasi azione di modifica si rifletterà su entrambe le viste.

Una volta terminato, afferra lo splitter e trascinalo verso l'alto (o il menu FinestraRimuovi divisione ).


2
(Sri: scusa, le righe "orizzontali" come nelle viste sono allineate ... o una vista sopra l'altra). AFAIK, le viste verticali (affiancate) non sono possibili.

7
Sembra non aver letto OP, dove menziona di essere consapevole di questa cosa.
Jason S,



9

La risposta di Luke non ha funzionato per me. Il comando 'Nuova finestra' era già elencato nelle impostazioni di personalizzazione, ma non veniva visualizzato nel menu di scelta rapida delle schede .js, nonostante l'eliminazione dell'impostazione del registro.

Quindi ho usato:

Utensili

Personalizzare...

Tastiera...

Scorri verso il basso per selezionare Window.NewWindow

E ho premuto e assegnato i tasti di scelta rapida, Ctrl+ Shift+ W.

Questo ha funzionato per me.

==== EDIT ====

Bene, "lavorato" era troppo forte. La mia scorciatoia da tastiera apre effettivamente un'altra scheda sullo stesso file JavaScript, ma piuttosto inutilmente non rende il contenuto; è solo una finestra bianca vuota! Potresti avere più fortuna.


3
Grazie. Questo ha funzionato per me per VS2012 / VB.net. Strumenti aperti - opzioni - tastiera (in ambiente) - seleziona Visual Basic 6 dal menu a discesa - seleziona Window.NewWindow dall'elenco dei comandi - premi ctrl + n, ctrl + w
CodingSlayer

8

Con il tuo file aperto, vai alla finestra di comando (menu VisualizzaAltre finestreFinestra di comando , o semplicemente Ctrl+ Alt+ A)

Genere:

Window.NewWindow

E poi

Window.NewVerticalTabGroup

ha funzionato per me (Visual Studio 2017).

O usando i menu:

Finestra del menu → Nuova finestra

Finestra del menu → Nuovo gruppo di tocchi verticali


Hai fatto lavorare i Lord con questo figlio mio. Grazie.
Andrew,

4

Credo che ci sarà il menu della finestra , il nuovo gruppo di schede orizzontali / verticali .


3
AFAI vedi, Non puoi aprire lo stesso file in diversi gruppi di schede
Gishu

3

Quando ho lavorato con Visual Studio 2013 e VB.NET ho scoperto che puoi personalizzare facilmente il menu e aggiungere il comando "Nuova finestra": non è necessario pasticciare con il registro!

Dio solo sa perché Microsoft ha scelto di non includere il comando per alcune lingue ...?


Ha funzionato facilmente per me! Strumenti menu > Personalizza . Quindi nella scheda Comandi , seleziona Finestra nel primo menu a discesa, quindi fai clic sul pulsante Aggiungi comando e voilà! (Visual Studio 2019)
cyberponk,

3

Per le versioni più recenti (come Visual Studio 2017)

  • Seleziona la finestra che vuoi duplicare.
  • Vai alla scheda della finestra e fai clic su Dividi nella parte superiore dell'elenco.
  • Al termine, fai di nuovo clic per disattivarlo.

3
Una finestra divisa in due metà non è uguale a due finestre.
Tipx,

1

Per i tipi di file, è possibile non aprire lo stesso file in un gruppo di schede verticale (ad esempio file .vb)

  • Apri 2 diverse istanze di Visual Studio
  • Apri lo stesso file in ogni istanza
  • Ridimensiona le finestre IDE e posizionale fianco a fianco per ottenere il layout.

Se si salva su disco in un'istanza, tuttavia, sarà necessario ricaricare il file quando si passa all'altra. Inoltre, se apporti modifiche in entrambi i casi, dovrai risolvere il secondo salvataggio. Visual Studio richiede in entrambi i casi diverse opzioni. Semplificherai un po 'la tua vita se modifichi solo in un'istanza.


@Odrade - Puoi indicarmi la risposta corretta che funziona per tutti i tipi di file ...
Gishu

@Jason Ok, ma è ancora errato affermare che non è possibile aprire lo stesso file più volte per il confronto side-by-side. Ciò è chiaramente possibile, almeno per i file .cs.
Odrade,

@Odrade Hai ragione. Ho modificato per provare a correggerlo. Facendo sapere se si desidera rimuovere i commenti in base alle versioni precedenti.
Jason S,

@Odrade Sono arrivato a provare la risposta di Luke È molto meglio che aprire due istanze di VS per gli utenti VB e ha il mio voto.
Jason S,

Questa sembra l'unica soluzione funzionante per i file html, in cui la modifica del registro dà solo una seconda finestra vuota
Chris F Carroll,

1

Non ho una copia di Visual Studio 2005, ma questo processo funziona su Visual Studio 2008:

  1. Apri xyz.cpp insieme ad altri file.
  2. Fare clic con il tasto destro del mouse sull'intestazione della scheda e selezionare il nuovo gruppo di schede verticale.
  3. Fai clic con il pulsante sinistro del mouse sull'altro file nel primo gruppo di schede.
  4. Aprire nuovamente xyz.cpp tramite Esplora soluzioni.

Ora dovresti avere due istanze di file in gruppi di schede verticali separati.


Sul mio VS2K5 e VS2K8 mostra solo le istanze originali nella seconda scheda per me. Questo è se faccio doppio clic in Esplora soluzioni, trascino da Esplora file o tramite File | Apri il menu
Simeon Pilgrim,

@Simeon - Succede se non è aperto un altro file (seconda parte del passaggio 1.)
si618

Sa che il file originale è aperto nell'altro gruppo di schede. Forse questo si riferisce nuovamente ai file che consente di duplicare.
Neoswf,

0

Ho escogitato un trucco che potrebbe produrre il risultato previsto nella risposta originale.

Se hai il file desiderato in due finestre in un controllo del codice sorgente, puoi fare clic con il pulsante destro del mouse sul file e selezionare confronta, puoi confrontare il

Se fai il confronto, avrai una nuova finestra chiamata diff, che ti mostra il contenuto del tuo file.

Questo ovviamente non è l'ideale in quanto la finestra diff avrà i colori diff che inquinano il testo. Nota: puoi confrontare il file che vuoi aprire e svuotare il file, quindi avrai la finestra su uno sfondo verde molto brutto.

Questo non è perfetto, è un trucco, ma è stato l'unico modo in cui ho scoperto di avere davvero lo stesso file in due finestre.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.