Fonctionnalités cachées de Visual Studio (2005-2010)?

182

Visual Studio est un produit tellement volumineux que même après des années de travail avec lui, je tombe parfois sur une nouvelle / meilleure façon de faire des choses ou des choses que je ne savais même pas possibles.

Par exemple-

  • Crtl+ R, Ctrl+ Wpour afficher les espaces blancs. Essentiel pour éditer les scripts de construction Python.

  • Sous "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Créer une chaîne appelée Guides avec la valeur «RVB (255,0,0), 80» pour avoir une ligne rouge à la colonne 80 dans l'éditeur de texte.

Sur quelles autres caractéristiques cachées êtes-vous tombé par hasard?

shoosh
la source
Je vous remercie! Enfin un marqueur de 80 colonnes dans VS :)
Jonas Gulle
Merci. en fait, je suis tombé par hasard sur "afficher les espaces blancs" par accident et je voulais m'en débarrasser. Merci beaucoup!
Arsen Zahray

Réponses:

123

Faites une sélection en appuyant sur ALT - sélectionne un carré de texte au lieu de lignes entières.

shoosh
la source
9
Ctrl-Alt sélectionnera des mots entiers. Alt changera la taille de la zone de sélection d'un caractère à la fois.
firedfly
4
Cela fonctionne également dans MS Word et OO Writer. Je l'ai beaucoup utilisé.
Bård
3
Ceci (appelé "sélection de bloc") fonctionne également avec le clavier - maintenez Alt + Maj puis utilisez les touches fléchées.
arolson101
1
De plus, si vous sélectionnez une colonne horizontale vide de cette façon, tout ce que vous tapez sera dupliqué sur chaque ligne, se comportant comme un énorme curseur :)
Sedat Kapanoglu
1
J'ai vu cela vendu comme une fonctionnalité pour VS 2010, mais je l'ai juste essayé dans VS 2008 et cela a fonctionné. Je suis sidéré. c'est incroyablement utile!
DaveDev
95

Tracepoints!

Mettez un point d'arrêt sur une ligne de code. Ouvrez la fenêtre Breakpoints et faites un clic droit sur le nouveau point d'arrêt. Sélectionnez «Quand vous frappez ...». En cochant la case `` Imprimer un message '', Visual Studio imprimera un message dans la sortie de débogage chaque fois que la ligne de code est exécutée, plutôt que (ou aussi bien que) la coupure. Vous pouvez également lui demander d'exécuter une macro lorsqu'elle passe la ligne.

Charles Anderson
la source
1
Je sais que je suis en retard au match, mais c'est une fonctionnalité intéressante que je n'ai jamais su!
Jerry
7
Pour des points supplémentaires, vous pouvez créer une affectation de variable locale dans le bouton lorsque vous appuyez sur. {localVariable = 1.0f} ou augmenter les valeurs de {staticVariable + = 0.1f}
Charles Beattie
91

Vous pouvez faire glisser le code vers la boîte à outils. Essayez-le!

jfs
la source
Putain de merde pour que vous puissiez! (Merci!)
Ali Parr
ne semble cependant pas être très utile sur les extraits de
code
33
Cher Dieu ... c'est un tout nouveau niveau de copier-coller. Copier-coller-coller-coller. Je connais beaucoup de programmeurs qui, j'espère, ne découvriront jamais que vous pouvez le faire.
Ryan Lundy
Ce serait cool si vous pouviez lui dire d'évaluer le code lorsque vous avez cliqué sur le bouton, comme un bookmarklet.
intuitu
Oh non. Que fait cette fonction bastardize!
79

Cliquez sur un identifiant (nom de classe, variable, etc.) puis appuyez F12sur "Aller à la définition". Je suis toujours étonné de voir combien de personnes je regarde du code utilisent la méthode du clic droit plus lent -> "Aller à la définition".

EDIT: Ensuite, vous pouvez utiliser Ctrl+ -pour revenir à l'endroit où vous étiez.

Craig
la source
8
Et n'oubliez pas Ctrl + Shift + - [control shift moins] pour avancer!
Kevin Pullin
5
Et Shift F12 pour trouver toutes les références
Benjol
2
Vous pouvez également utiliser ALT + flèche gauche pour revenir là où vous étiez
arolson101
1
Avec les paramètres de la touche VB, Shift-F2 effectue également une définition Go To.
Ryan Lundy
1
Pourrait aussi bien cliquer avec le bouton droit sur G si vous suivez la route de la souris en premier lieu.
tsilb
57

CTRL + MAJ + V parcourra votre presse-papiers, Visual Studio conserve un historique des copies.

sontek
la source
cela peut être trouvé dans edit.cycleclipboardring dans les mappages de clavier (dans Visual C ++, c'est Ctrl-Shift-Insert, pas Ctrl-Shift-V)
Par défaut
52

Sara Ford couvre de nombreux conseils intéressants : http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Mais certains de mes favoris sont des extraits de code, Ctrl+ .pour ajouter un using<Namespace> ou générer un stub de méthode. Je ne peux pas vivre sans ça.

Consultez une excellente liste dans l'affiche de la liaison de touches Visual Studio 2008 C #: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en

Slace
la source
1
Sara Ford est la déesse de Visual Studio. Je ne saurais trop la recommander.
Chris Charabaruk le
Tout à fait d'accord que je pourquoi je partage son travail. J'aime vraiment sa série actuelle qui couvre le débogage
Aaron Powell
Triste qu'elle ait arrêté de faire le conseil du jour, même si cela fait si longtemps qu'elle n'a pas travaillé avec les entrailles de VS qu'il est tout à fait compréhensible qu'elle ait besoin de passer à autre chose ...
Knobloch le
Merci d'avoir mentionné CTRL +. Je cherchais celui-ci exactement.
Sorin Comanescu
J'utilisais toujours CTRL + ALT + F10. Je ne connaissais pas CTRL +. fait la même chose - merci. Beaucoup plus confortable.
Noam Gal
49
CTRL-K, CTRL-D

Reformatez le document!
C'est sous les raccourcis clavier VB, pas sûr de C #

Mark Glorie
la source
3
oui, fonctionne sous C #, Web Designer, éditeur XML, éditeur CSS, éditeur XSD, JavaScript (dans une certaine mesure). La plupart des types de fichiers pris en charge
Aaron Powell
8
Ctrk-K, Ctrl-F pour C ++
MSalters
7
J'utilise Ctrl-E, Ctrl-D
configurateur
Ctrl + K, Ctrl + F formate également le texte que vous avez sélectionné (en C #, pas sûr des autres).
Zann Anderson
43

Combien de fois déboguez-vous un tableau dans une fenêtre de surveillance rapide ou dans une fenêtre de surveillance et n'avez-vous que Visual Studio vous montre le premier élément? Ajoutez ", N" à la fin de la définition pour que le studio vous montre également les N éléments suivants. IE "this-> m_myArray" devient "this-> m_array, 5".

tenpn
la source
41

Recherche incrémentielle: tout en ayant un document source ouvert, appuyez sur (CTRL + I) et tapez le mot que vous recherchez, vous pouvez appuyer à nouveau sur (CTRL + I) pour voir les mots correspondant à votre entrée.

Leyu
la source
4
Cela s'appelle "> i <ncremental search".
Constantin
Par opposition à la recherche> ex <crementale, c'est ce que Firefox implémente.
kibibu le
Venant du monde Emacs, c'est la première fonctionnalité que j'ai recherchée. :)
JesperE
37

Vous pouvez utiliser les codes suivants dans la fenêtre de surveillance.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ferruccio
la source
35
  • Ctrl-K, Ctrl-C pour commenter un bloc de texte avec // au début
  • Ctrl-K, Ctrl-U pour décommenter un bloc de texte avec // au début

Je ne peux pas vivre sans ça! :)

Thomas Bratt
la source
Également vrai dans VB.NET, sauf avec 'plutôt que //
ChrisA
Également vrai dans SQL Server Management Studio, sauf en utilisant la séquence d'échappement de commentaire SQL de «-»
Thomas Bratt
3
J'ai toujours souhaité que vous puissiez basculer les commentaires? Pourquoi voudriez-vous "doubler" quelque chose? Sûrement en appuyant à nouveau dessus, vous devriez annuler un commentaire ...
Dan Diplo
16
Parfois, vous voulez commenter la fonction entière, et certaines lignes à l'intérieur sont déjà commentées (c'est-à-dire que ce sont des commentaires appropriés). Dans de tels cas, il n'est pas évident de savoir quoi faire si vous avez une bascule, il est donc généralement préférable de rendre la décision explicite.
Pavel Minaev
1
Notez que si vous commencez au début du texte plutôt qu'au début de la ligne, vous obtiendrez le / * * / au lieu de //. C'est d'ailleurs ma fonctionnalité la plus utilisée
Par défaut
25

Empêcher le débogueur d'accéder à des fonctions triviales.

Lorsque vous parcourez le code dans le débogueur, vous pouvez passer beaucoup de temps à entrer et sortir des fonctions qui ne vous intéressent pas particulièrement, avec des noms tels que GetID () ou std :: vector <> (), pour choisir un exemple C ++. Vous pouvez utiliser le registre pour que le débogueur les ignore.

Pour Visual Studio 2005, vous devez accéder à HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver et ajouter des valeurs de chaîne contenant des expressions régulières pour chaque fonction ou ensemble de fonctions que vous souhaitez exclure; par exemple

std :: vector. * ::. *
TextBox :: GetID

Vous pouvez également les remplacer pour des exceptions individuelles. Par exemple, supposons que vous vouliez entrer dans le destructeur de la classe vectorielle:

std :: vector. * :: \ ~. * = StepInto

Vous pouvez trouver des détails sur les autres versions de Visual Studio à l' adresse http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx

Charles Anderson
la source
Wow, c'est génial. Je n'avais aucune idée que c'était possible.
j_random_hacker
23

Ctrl-F10 : exécuter au curseur pendant le débogage. Il m'a fallu des siècles pour trouver cela, et je l'utilise tout le temps;

Ctrl-E, Ctrl-D : appliquer le formatage standard (que vous pouvez définir).

Joel à Gö
la source
1
Ctrl + Maj + F10 pour ignorer tout le code et exécuter jusqu'au curseur. Astucieux lorsque vous essayez de tester des lignes de code spécifiques.
Samuel Slade
23

Fonction clé TAB .

  1. Si vous connaissez le nom de la clé d'extrait de code, écrivez et cliquez sur Double Tab. par exemple: Ecrire

    foreach

puis cliquez deux fois sur la touche de tabulation pour

foreach (object var in collection_to_loop)
{

}

2. Si vous écrivez un événement, écrivez ici

        Button btn = new Button();
        btn.Click +=         

puis cliquez deux fois sur la touche de tabulation pour

private void Form1_Load(object sender, EventArgs e)
{
        Button btn = new Button();
        btn.Click += new EventHandler(btn_Click);     
}    
void btn_Click(object sender, EventArgs e)
{
        throw new Exception("The method or operation is not implemented.");
}

Fonction btn_Click écrire automatiquement

  1. dans l'éditeur XAML, écrivez n'importe quel événement. par exemple:

MouseLeftButtonDownpuis cliquez sur l'onglet
MouseLeftButtonDown=""puis cliquez à nouveau sur l'onglet MouseLeftButtonDown="Button_MouseLeftButtonDown"dans la Button_MouseLeftButtonDownméthode de section de code créée.

ebattulga
la source
21

Sara Ford a acculé ce marché.

http://blogs.msdn.com/saraford/default.aspx

Plus de trucs et astuces Visual Studio que vous ne pouvez en faire.

Quelques autres:

  • Les éditions d'essai de 3 mois de Visual Studio 2005 et 2008 sont entièrement fonctionnelles et peuvent être utilisées indéfiniment (pour toujours) en réinitialisant l'horloge système avant d'ouvrir VS. Ensuite, lorsque VS est ouvert, réglez à nouveau l'horloge système pour que vos dates et heures ne soient pas faussées.
  • Mais c'est vraiment du piratage et je ne peux pas le recommander, surtout quand toute personne avec une adresse .edu peut obtenir une version Pro entièrement fonctionnelle de VS2008 via Microsoft Dreamspark .
  • Vous pouvez utiliser Visual Studio pour ouvrir des exécutables tiers et parcourir les ressources intégrées (boîtes de dialogue, tables de chaînes, images, etc.) stockées dans.
  • Les visualiseurs de débogage ne sont pas exactement une fonctionnalité "cachée" mais ils sont quelque peu négligés et super utiles, car en plus d'utiliser les visualiseurs fournis, vous pouvez utiliser les vôtres pour des ensembles de données spécifiques.
  • Commande "Set Instruction Pointer" ou "Set Next Statement" du débogueur.
  • Points d'arrêt conditionnels (comme l'a noté KiwiBastard).
  • Vous pouvez utiliser Quickwatch etc. pour évaluer non seulement la valeur d'une variable, mais aussi les expressions d'exécution autour de cette variable.
user2189331
la source
3
Si c'est vraiment du piratage (sur lequel je suis d'accord avec vous), alors pourquoi le mentionneriez-vous?
Ryan Lundy
1
Kyralessa, parce que certaines personnes s'en moquent probablement. Cependant, les éditions Express étant gratuites, je doute qu'il y ait une raison réelle de nos jours d'utiliser une version VS piratée.
Joey le
17

Hauteur de la liste déroulante IntelliSense personnalisée , par exemple affichant 50 éléments au lieu de la valeur par défaut qui est ridiculement petite IMO (8).

(Pour ce faire, redimensionnez simplement la liste déroulante la prochaine fois que vous la verrez, et Visual Studio se souviendra de la taille que vous avez sélectionnée la prochaine fois qu'il ouvrira une liste déroulante.)

Brann
la source
4
Vous ne pouvez plus le redimensionner dans VS2010, cela me dérange sans fin.
manixrock le
dans Vs2008, je suis capable de changer la largeur mais pas la hauteur.
Kapil
16

Découvert aujourd'hui:

Ctrl + .

Affiche le menu contextuel pour la refactorisation (puis celui qui est accessible via la dernière lettre soulignée d'une classe / méthode / propriété que vous venez de renommer - survolez le menu ou "Ctrl" + ".")

Muxa
la source
Alt + Shift + F10 le fait également (en utilisant les raccourcis clavier C #)
Kyle Trauberman
4
Bien mieux que d'essayer de chasser la minuscule cible de clic de souris dans cette situation
Richard Ev
14

Beaucoup de gens ne connaissent pas ou n'utilisent pas le débogueur au maximum - IE l'utilise simplement pour arrêter le code, mais cliquez avec le bouton droit sur le cercle rouge et il y a beaucoup plus d'options telles que la rupture à condition, l'exécution du code à la rupture.

Vous pouvez également modifier les valeurs des variables au moment de l'exécution à l'aide du débogueur, ce qui est une excellente fonctionnalité - enregistre la réexécution du code pour corriger une erreur de logique stupide, etc.

JamesSugrue
la source
13

Transposition de ligne, Maj-Alt-T
Permute deux lignes (actuelle et suivante) et déplace le curseur sur la ligne suivante. J'aime ça. J'ai même écrit une macro qui a changé de nouveau la position d'une ligne, exécuté la transposition de ligne et changé la position de la ligne à nouveau pour que tout ressemble à un échange de la ligne actuelle avec la précédente (Transposition de ligne inversée).

Transposition de mot, Maj-Ctrl-T

okutane
la source
Cela fait avancer la ligne vers le bas de la page, comment faire monter une ligne vers le haut de la page?
Alex Baranosky le
GordonG, j'ai écrit la macro suivante: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Pourrait faire avec ça ici car il s'avère :)
Benjol
11

Lors du développement de C ++, Ctrl-F7 compile uniquement le fichier actuel.

Sakin
la source
11

Structure du document dans FormsDesigner ( CTRL + ALT + T )

Contrôle rapide, renommer, commander et plus encore!

Pondidum
la source
Je ne peux pas croire que je ne savais pas à ce sujet. Ma vie a changé.
HipsterZipster
11

Pour synchroniser automatiquement le fichier actuel avec l'Explorateur de solutions. Donc pas besoin de regarder où se trouve le fichier dans la structure du projet

Outils -> Options -> Projets et solutions -> "Suivre l'élément actif dans l'Explorateur de solutions"

Edit: Si cela devient trop ennuyeux pour vous, vous pouvez utiliser la macro de Dan Vanderboom pour invoquer cette fonctionnalité à la demande en appuyant sur une touche.

(Note: Tiré du commentaire ci-dessous par Jerry).

SDX2000
la source
3
cela devient ennuyeux après un certain temps. Je souhaite qu'il y ait un raccourci clavier pour le faire à la demande.
kenwarner
2
Voici un article sur la façon de suivre à la demande. dvanderboom.wordpress.com/2008/03/21/…
Jerry
Si vous avez beaucoup de fichiers ouverts, cela peut tuer VS (sans avertissement) si vous faites des choses comme «Tout fermer sauf ça» (à partir de PowerCommands, je pense).
Benjol le
Resharper rend le besoin de ce redondant car vous pouvez faire Shift + Alt + L pour accéder directement au fichier actuel dans l'Explorateur de solutions; ou Ctrl + Maj + N pour rechercher par mot-clé n'importe quel fichier dans la solution.
cbp le
9

Je ne sais pas si c'est "caché", mais peu de gens le savent - les pseudo - enregistrements . Très pratique lors du débogage, j'ai @ERR, hr dans ma fenêtre de surveillance tout le temps.

annee
la source
1
J'ai entendu dire que @xxx est progressivement abandonné au profit de xxx $. FWIW, WinDbg utilise également la forme $ xxx.
Constantin
Vous ne pouvez pas simplement faire "hr, hr" dans une fenêtre de surveillance? Je l'ai utilisé tout le chemin du retour dans VC6 ...
LarryF
Excellent. Comme le suggère l'article lié, la définition de points d'arrêt conditionnels sur @TIB simplifiera considérablement le débogage des applications multithread.
j_random_hacker
9

Ctrl-Moins, Ctrl-Plus, permet de naviguer en arrière et en avant là où vous êtes allé récemment (seulement les fichiers ouverts, cependant).

Ilya Ryzhenkov
la source
Oui, adorez-les - utilisez-les tous les jours.
MaseBase
Très utile si vous appuyez sur F + 12 pour accéder à une définition et que vous souhaitez ensuite revenir là où vous étiez.
Thomas Bratt
9

Je ne l'utilise pas souvent, mais j'aime:

ctrl-alt + mouse select

Pour sélectionner dans un bloc rectangulaire, pour «bloquer» les limites.

Comme indiqué dans les commentaires,

alt + mouse select

Ne fait qu'un simple bloc rectangulaire.

Soie de midi
la source
4
Un vote négatif est amusant, étant donné que c'est une action valable dans VS :) Bonne chance à vous, mystérieux haineux.
Noon Silk
2
C'est peut-être un peu tôt, mais la lecture m'a donné envie de l'essayer sur Firefox. Il s'avère que ctrl-alt-shift vous permet d'utiliser la souris pour faire glisser le document entier sur l'écran, de la même manière que fonctionne un document PDF.
KdgDev
En quoi diffère-t-il de la sélection alt + souris?
Guffa
Guffa: Cela ne concerne que les fins de bloc. alt-select vous permet de choisir n'importe quelle zone contenant n'importe quoi. Ils sont différents.
Noon Silk
Bien que je pense que cela peut être simplement «ctrl-alt», pas aussi «shift».
Noon Silk
8

CTRL + Maj + U -> Section mise en évidence en majuscules. CTRL + U -> Minuscules la section en surbrillance Idéal pour que mes instructions SQL soient parfaites lorsque je les place dans des requêtes de chaîne.

Également utile pour le code que vous avez trouvé en ligne où TOUT EST EN MAJUSCULES.

Rob
la source
2
Dommage qu'ils n'aient pas d'option CamelCase CTRL + Shift ... :) C'est probablement mon refactor n ° 1 que je fais quand je reprends un projet ... Larry
LarryF
8

Bouton central de la souris Cliquer sur l'onglet de l'éditeur ferme l'onglet.

Kevin Driedger
la source
1
J'utilise cela tout le temps lorsque je codifie parce que je recherche du code et que je le ferme (le "X" pour la fermeture est plutôt loin).
Kevin Driedger
8

Pour afficher n'importe quel morceau de données sous forme de «tableau» de n octets, utilisez la syntaxe suivante dans la fenêtre QuickWatch de Visual Studio:

variable, n

Par exemple, pour afficher une variable nommée foosous forme de tableau de 256 octets, entrez l'expression suivante dans la fenêtre QuickWatch:

foo, 256

Ceci est particulièrement utile lors de l'affichage de chaînes qui ne sont pas terminées par un NULL ou de données accessibles uniquement via un pointeur. Vous pouvez utiliser la fenêtre Mémoire de Visual Studio pour obtenir un résultat similaire, mais l'utilisation de la fenêtre QuickWatch est souvent plus pratique pour une vérification rapide.

Emerick Rogul
la source