web-dev-qa-db-fra.com

Ouvrir deux instances d'un fichier dans une seule session Visual Studio

J'ai un fichier, xyz.cpp. Je veux ouvrir deux instances de ce fichier dans Visual studio (BTW, j'utilise Visual Studio 2005). Pourquoi voudrais-je le faire? Je veux comparer deux sections du même fichier côte à côte. Je connais des solutions de contournement telles que:

  1. Faites une copie du fichier. Mais le problème est que ce n’est pas élégant, et je ne veux pas en faire de copies à chaque fois que je suis confronté à cela.

  2. Je peux diviser la fenêtre en deux. Le problème avec split, c'est que je ne peux le diviser que horizontalement. Le résultat d'une division horizontale est que la moitié droite de mon écran est un espace blanc.

Si je pouvais le scinder verticalement ou ouvrir deux instances du même fichier, cela augmenterait le nombre de lignes de code que je peux comparer.

529
Paragon

Voici comment le faire ...

  1. Sélectionnez l'onglet dont vous voulez deux copies
  2. Sélectionnez le menu Fenêtre Nouvelle fenêtre dans le menu.
  3. Cliquez avec le bouton droit sur le nouvel onglet et sélectionnez Nouveau groupe d'onglets verticaux

Si Nouvelle fenêtre ne figure pas dans le menu * Fenêtre, notez que la commande existe, même à partir de Visual Studio 2017. Ajoutez-la à Menu Fenêtre utilisant le menu Outils Personnaliser Commandes . À ce stade, décidez où placer la commande Nouvelle fenêtre et sélectionnez Ajouter une commande .

MIS À JOUR le "30 juillet 2018"

Dans Visual Studio Code version 1.25.1 et ultérieure

Voie 1

Vous pouvez simplement cliquer avec le bouton gauche sur votre fichier dans le panneau latéral (Explorateur) et appuyer sur Ctrl + Enter.

Voie 2

Cliquez simplement avec le bouton droit de la souris sur votre fichier dans le panneau latéral du code Visual Studio (Explorer) et sélectionnez la première option ouverte sur le côté .

884
PaulB

Pour les expressions Visual Basic, HTML, JScript et RDL, l'option Window > New Window mentionnée dans réponse de PaulB est désactivée. Cependant, une option peut être modifiée dans le registre pour activer l'élément de menu.

Toutes les autres langues ne se limitent pas à une seule fenêtre de code, vous pouvez donc utiliser réponse de PaulB sans modifier le registre.

Activation de la nouvelle fenêtre dans le registre Windows. [ 1 ] [ 2 ]

  1. Accédez à la clé de registre suivante. Cet exemple concerne Basic (Visual Basic), mais la clé existe également pour HTML, JScript et RDL Expression.

    • Système d'exploitation 64 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
    • Système d'exploitation 32 bits: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Languages\Language Services\Basic
  2. Recherchez la valeur Single Code Window Only et effectuez l'une des opérations suivantes:

    • Réglez-le sur 0
    • Renommez la valeur
    • Supprimer la valeur ( soyez prudent !)

Cela activera l'élément de menu "Nouvelle fenêtre", mais il se peut qu'il ne soit pas visible dans le menu.

Ajout d'un élément de menu

Pour voir réellement l'élément de menu Nouvelle fenêtre, je devais le rajouter dans le menu:

  • Outils> Personnaliser ...> Commandes> Ajouter une commande ...
  • Sélectionnez "Barre de menus" puis sélectionnez le menu "Fenêtre" dans la liste déroulante.
  • Ajouter une commande ...> Fenêtre> Nouvelle fenêtre> OK

Restauration de la valeur de registre
Copiez-collez-le dans le bloc-notes, enregistrez-le en tant que fichier .reg et importez-le dans votre registre pour restaurer le paramètre initial.

 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\Langues\Services de langue\Basique] 
 "Fenêtre à code unique uniquement" = dword: 00000001 
67
Luke Hoffmann

Ouvrez le fichier (si vous utilisez plusieurs groupes d’onglets, assurez-vous que votre fichier est sélectionné).

Menu FenêtreSplit (alternativement, il y a ce petit nœud juste au-dessus de la barre de défilement verticale de l'éditeur - prenez-le et faites-le glisser vers le bas)

Cela vous donne deux vues (horizontales) du même fichier. Attention, toutes les actions d'édition seront répercutées sur les deux vues.

Une fois que vous avez terminé, prenez le séparateur et faites-le glisser complètement (ou dans le menu FenêtreSupprimer le fractionnement).

18
Sri

Vous pouvez utiliser l'option de Windows Nouvelle fenêtre pour dupliquer la fenêtre actuelle. . Voir plus à: Pourquoi j'aime Visual Studio 2010? Détacher Windows

17
masih

Aller au menu Windows ) Nouvelle fenêtre :

Enter image description here

11

La réponse de Luke n'a pas fonctionné pour moi. La commande "Nouvelle fenêtre" était déjà répertoriée dans les paramètres de personnalisation, mais ne figurait pas dans le menu contextuel des onglets .js, malgré la suppression du paramètre de registre.

Alors j'ai utilisé:

Outils

Personnaliser...

Clavier...

Faites défiler la liste pour sélectionner Window.NewWindow

Et j'ai appuyé et assigné les touches de raccourci, Ctrl + Shift + W.

Cela a fonctionné pour moi.

==== EDIT ====

Eh bien, "travaillé" était trop fort. Mon raccourci clavier ouvre en effet un autre onglet sur le même fichier JavaScript, mais sans aide, il ne restitue pas le contenu; c'est juste une fenêtre blanche vide! Vous pouvez avoir plus de chance.

8
dumbledad

Lorsque votre fichier est ouvert, accédez à la fenêtre de commande (menu AffichageAutres fenêtresFenêtre de commande, ou simplement Ctrl + Alt + A)

Type:

Window.NewWindow

Puis

Window.NewVerticalTabGroup

travaillé pour moi (Visual Studio 2017).

Ou en utilisant les menus:

Menu FenêtreNouvelle fenêtre

Menu FenêtreNouveau groupe de prises verticales

4

Fenêtre menu, Nouveau groupe d'onglets horizontal/vertical il y en aura une, je pense.

3
Anton Gogolev

Pour les versions plus récentes (telles que Visual Studio 2017)

  • Sélectionnez la fenêtre que vous souhaitez dupliquer.
  • Allez dans l'onglet de la fenêtre et cliquez sur diviser en haut de la liste.
  • Lorsque vous avez terminé, cliquez à nouveau dessus pour le désactiver.
3
user8162574

Lorsque je travaillais avec Visual Studio 2013 et VB.NET, j’ai trouvé que vous pouviez assez facilement personnaliser le menu et ajouter la commande "Nouvelle fenêtre" - il n’était pas nécessaire de jouer avec le registre!

Dieu seul sait pourquoi Microsoft a choisi de ne pas inclure la commande pour certaines langues ...?

2
mike

Je n'ai pas de copie de Visual Studio 2005, mais ce processus fonctionne sur Visual Studio 2008:

  1. Ouvrez xyz.cpp avec un autre fichier.
  2. Cliquez avec le bouton droit sur l'en-tête de l'onglet et sélectionnez le nouveau groupe d'onglets vertical.
  3. Cliquez avec le bouton gauche sur cet autre fichier du premier groupe d'onglets.
  4. Ouvrez à nouveau xyz.cpp via la solution Explorer.

Vous devriez maintenant avoir deux instances de fichier dans des groupes d'onglets verticaux séparés.

1
si618

Pour les types de fichiers, où le même fichier ne peut pas être ouvert dans un groupe d’onglets verticaux (par exemple, des fichiers .vb), vous pouvez:

  • Open 2 instances différentes de Visual Studio
  • Ouvrez le même fichier dans chaque instance
  • Redimensionnez les fenêtres IDE et placez-les côte à côte pour obtenir votre mise en page.

Si vous enregistrez sur le disque dans une instance, vous devrez recharger le fichier lorsque vous basculez vers l’autre. De plus, si vous apportez des modifications dans les deux cas, vous devrez résoudre lors de la deuxième sauvegarde. Visual Studio vous invite dans les deux cas avec différentes options. Vous simplifierez un peu votre vie si vous n'éditez que dans un cas.

1
Gishu

Je suis venu avec un bidouillage qui pourrait produire le résultat voulu dans la réponse originale.

Si vous avez le fichier souhaité dans deux fenêtres d’un contrôle de code source, vous pouvez cliquer avec le bouton droit de la souris sur le fichier et sélectionner Comparer.

Si vous comparez, vous aurez une nouvelle fenêtre appelée Call, affichant le contenu de votre fichier.

Ce n'est bien sûr pas idéal car la fenêtre diff aura les couleurs diff qui pollueront le texte. Remarque: vous pouvez comparer le fichier que vous voulez ouvrir et le fichier vide, puis la fenêtre s’affichera dans un arrière-plan vert très moche.

Ce n’est pas parfait, c’est un hack, mais c’est le seul moyen que j’ai trouvé d’avoir le même fichier dans deux fenêtres.

0
berserck