Versteckte Funktionen von Visual Studio (2005-2010)?

182

Visual Studio ist ein so großes Produkt, dass ich selbst nach Jahren der Arbeit manchmal auf eine neue / bessere Möglichkeit stoße, Dinge zu tun oder Dinge, von denen ich nicht einmal wusste, dass sie möglich sind.

Zum Beispiel-

  • Crtl+ R, Ctrl+ W, um Leerzeichen anzuzeigen. Unverzichtbar für die Bearbeitung von Python-Build-Skripten.

  • Unter "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Erstellen genannt String Guides mit dem Wert „RGB (255,0,0), 80“ 80 im Texteditor eine rote Linie in Spalte zu haben.

Auf welche anderen versteckten Funktionen sind Sie gestoßen?

shoosh
quelle
Danke dir! Endlich ein 80-Spalten-Marker in VS :)
Jonas Gulle
Vielen Dank. Eigentlich bin ich aus Versehen über "Show White Spaces" gestolpert und wollte es loswerden. Vielen Dank!
Arsen Zahray

Antworten:

123

Treffen Sie eine Auswahl mit gedrückter ALT-Taste - Wählt ein Textquadrat anstelle ganzer Zeilen aus.

shoosh
quelle
9
Strg-Alt wählt ganze Wörter aus. Alt ändert die Größe des Auswahlbereichs jeweils um ein Zeichen.
Feuerfliege
4
Dies funktioniert auch in MS Word und OO Writer. Ich habe es oft benutzt.
Bård
3
Dies (als "Blockauswahl" bezeichnet) funktioniert auch mit der Tastatur - Alt + Umschalt gedrückt halten und dann die Pfeiltasten verwenden.
Arolson101
1
Wenn Sie auf diese Weise eine leere horizontale Spalte auswählen, wird alles, was Sie
eingeben,
1
Ich sah dieses Wesen verkauft als Merkmal für VS 2010, aber ich habe gerade versucht , es in VS 2008 und es funktionierte. Ich bin verblüfft. das ist erstaunlich nützlich!
DaveDev
95

Spurenpunkte!

Setzen Sie einen Haltepunkt in eine Codezeile. Öffnen Sie das Fenster Haltepunkte und klicken Sie mit der rechten Maustaste auf den neuen Haltepunkt. Wählen Sie 'Wenn getroffen ...'. Durch Aktivieren des Kontrollkästchens "Nachricht drucken" druckt Visual Studio jedes Mal, wenn die Codezeile ausgeführt wird, eine Nachricht an die Debug-Ausgabe aus, anstatt sie zu beschädigen. Sie können auch ein Makro ausführen lassen, wenn es die Zeile passiert.

Charles Anderson
quelle
1
Ich weiß, dass ich zu spät zum Spiel komme, aber das ist eine großartige Funktion, von der ich nie etwas gewusst habe!
Jerry
7
Für zusätzliche Punkte können Sie eine lokale Variablenzuweisung in der Schaltfläche "Wenn gedrückt" vornehmen. {localVariable = 1.0f} oder erhöhen Sie die Werte um {staticVariable + = 0.1f}
Charles Beattie
91

Sie können Code in die ToolBox ziehen. Versuch es!

jfs
quelle
Heiliger Mist, damit du kannst! (Danke!)
Ali Parr
scheint aber nicht viel über Schnipsel zu nützen
jk.
33
Lieber Gott ... es ist eine ganz neue Ebene des Kopierens und Einfügens. Kopieren und Einfügen-Einfügen-Einfügen. Ich kenne viele Programmierer, von denen ich hoffe, dass sie nie herausfinden, dass Sie dies tun können.
Ryan Lundy
Es wäre cool, wenn Sie ihm sagen könnten, dass er den Code auswerten soll, wenn Sie auf die Schaltfläche klicken, wie ein Lesezeichen.
Intuitiert
Ach nein. Was macht diese Bastardisierungsfunktion?
79

Klicken Sie auf einen Bezeichner (Klassenname, Variable usw.) und klicken Sie F12auf "Gehe zu Definition". Ich bin immer wieder erstaunt, wie viele Leute, denen ich Code ansehe, die langsamere Rechtsklick-> "Gehe zu Definition" -Methode verwenden.

BEARBEITEN: Dann können Sie mit Ctrl+ -dorthin zurückkehren, wo Sie waren.

Craig
quelle
8
Und vergessen Sie nicht Strg + Umschalt + - [Umschalt minus steuern], um vorwärts zu springen!
Kevin Pullin
5
Und Shift F12 für Alle Referenzen finden
Benjol
2
Sie können auch ALT + Pfeil nach links verwenden, um zu
Ihrem ursprünglichen Standort zurückzukehren
1
Mit den VB-Tasteneinstellungen führt Shift-F2 auch eine Go To Definition durch.
Ryan Lundy
1
Könnte auch mit der rechten Maustaste auf G klicken, wenn Sie zuerst die Mausroute wählen.
Tsilb
57

STRG + UMSCHALT + V durchläuft Ihre Zwischenablage. Visual Studio führt einen Verlauf der Kopien.

sontek
quelle
Dies kann in edit.cycleclipboardring in Tastaturzuordnungen gefunden werden (in Visual C ++ ist dies Strg-Umschalt-Einfügen, nicht Strg-Umschalt-V)
Standard
52

Sara Ford behandelt viele schöne Tipps: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Einige meiner Favoriten sind jedoch Code-Snippets, Ctrl+ .um einen using<Namespace> hinzuzufügen oder einen Methodenstub zu generieren. Ohne das kann ich nicht leben.

Schauen Sie sich eine großartige Liste im C # Keybinding-Poster von Visual Studio 2008 an: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=de

Slace
quelle
1
Sara Ford ist die Göttin von Visual Studio. Ich kann sie nicht genug empfehlen.
Chris Charabaruk
Stimme voll und ganz zu, warum ich ihre Arbeit teile. Ich liebe ihre aktuelle Serie, die das Debuggen behandelt
Aaron Powell
Traurig, dass sie aufgehört hat, das Trinkgeld des Tages zu geben, obwohl es so lange her ist, dass sie mit den Innereien von VS gearbeitet hat, dass es völlig verständlich ist, dass sie weitermachen musste ...
Knobloch
Vielen Dank, dass Sie STRG + erwähnt haben. Ich habe genau nach diesem gesucht.
Sorin Comanescu
Ich habe immer STRG + ALT + F10 verwendet. Wusste nicht STRG +. macht das gleiche - danke. Viel bequemer.
Noam Gal
49
CTRL-K, CTRL-D

Dokument neu formatieren!
Dies ist unter den VB-Tastenkombinationen, nicht sicher über C #

Mark Glorie
quelle
3
Ja, funktioniert unter C #, Web Designer, XML-Editor, CSS-Editor, XSD-Editor, JavaScript (bis zu einem gewissen Grad). Die meisten der unterstützten Dateitypen
Aaron Powell
8
Strg-K, Strg-F für C ++
MSalters
7
Ich benutze Strg-E, Strg-D
Konfigurator
Strg + K, Strg + F formatiert auch den von Ihnen ausgewählten Text (in C # nicht sicher über andere).
Zann Anderson
43

Wie oft debuggen Sie ein Array in einer Schnelluhr oder einem Überwachungsfenster und lassen sich nur von Visual Studio das erste Element zeigen? Fügen Sie am Ende der Definition ", N" hinzu, damit Studio Ihnen auch die nächsten N Elemente anzeigt. IE "this-> m_myArray" wird zu "this-> m_array, 5".

Tenpn
quelle
41

Inkrementelle Suche: Wenn ein Quelldokument geöffnet ist (STRG + I) und das gesuchte Wort eingegeben wird, können Sie erneut drücken (STRG + I), um Wörter anzuzeigen, die Ihrer Eingabe entsprechen.

Leyu
quelle
4
Es heißt "> i <inkrementelle Suche".
Constantin
Im Gegensatz zur> ex <inkrementellen Suche, die Firefox implementiert.
Kibibu
Aus der Emacs-Welt kommend, war dies das erste Feature, nach dem ich gesucht habe. :)
JesperE
37

Sie können die folgenden Codes im Überwachungsfenster verwenden.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ferruccio
quelle
35
  • Strg-K, Strg-C, um einen Textblock mit // am Anfang zu kommentieren
  • Strg-K, Strg-U, um einen Textblock mit // zu kommentieren am Anfang

Kann nicht ohne leben! :) :)

Thomas Bratt
quelle
Gilt
Gilt auch für SQL Server Management Studio, außer dass die SQL-Kommentar-Escape-Sequenz von '-'
Thomas Bratt
3
Ich wünschte immer, Sie könnten Kommentare umschalten? Warum sollten Sie etwas "doppelt kommentieren" wollen? Sicherlich sollte ein erneutes Drücken den Kommentar entfernen ...
Dan Diplo
16
Manchmal möchten Sie die gesamte Funktion kommentieren, und einige Zeilen darin sind bereits kommentiert (dh es handelt sich um richtige Kommentare). In solchen Fällen ist es nicht offensichtlich, was zu tun ist, wenn Sie einen Schalter haben. Daher ist es im Allgemeinen besser, die Entscheidung explizit zu treffen.
Pavel Minaev
1
Beachten Sie, dass Sie das / * * / anstelle von // erhalten, wenn Sie am Anfang des Textes und nicht am Anfang der Zeile beginnen. Dies ist übrigens meine am häufigsten verwendete Funktion
Standard
25

Verhindern, dass der Debugger in triviale Funktionen wechselt.

Wenn Sie im Debugger durch den Code gehen, können Sie viel Zeit damit verbringen, Funktionen, an denen Sie nicht besonders interessiert sind, mit Namen wie GetID () oder std :: vector <> (), ein- und auszuschalten. um ein C ++ - Beispiel auszuwählen. Sie können die Registrierung verwenden, damit der Debugger diese ignoriert.

Für Visual Studio 2005 müssen Sie zu HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver wechseln und Zeichenfolgenwerte hinzufügen, die reguläre Ausdrücke für jede Funktion oder jeden Satz von Funktionen enthalten, die Sie ausschließen möchten. z.B

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

Sie können diese auch für einzelne Ausnahmen überschreiben. Angenommen, Sie wollten in den Destruktor der Vektorklasse eintreten:

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

Details zu anderen Versionen von Visual Studio finden Sie unter http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx

Charles Anderson
quelle
Wow, das ist großartig. Ich hatte keine Ahnung, dass dies möglich war.
j_random_hacker
23

Strg-F10 : Beim Debuggen zum Cursor laufen lassen. Ich habe ewig gebraucht, um das zu finden, und ich benutze es die ganze Zeit;

Strg-E, Strg-D : Standardformatierung anwenden (die Sie definieren können).

Joel in Gö
quelle
1
Strg + Umschalt + F10 , um den gesamten Code zu überspringen und zum Cursor zu laufen. Geschickt beim Versuch, bestimmte Codezeilen zu testen.
Samuel Slade
23

TAB-Schlüsselfunktion .

  1. Wenn Sie den Namen des Snippet-Schlüssels kennen, schreiben Sie und klicken Sie auf die doppelte Registerkarte. Zum Beispiel: Schreiben

    foreach

Klicken Sie dann zweimal auf die Tabulatortaste, um

foreach (object var in collection_to_loop)
{

}

2. Wenn Sie ein Ereignis schreiben, schreiben Sie hier

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

Klicken Sie dann zweimal auf die Tabulatortaste, um

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.");
}

btn_Click Funktion automatisch schreiben

  1. Schreiben Sie im XAML-Editor ein beliebiges Ereignis. beispielsweise:

MouseLeftButtonDownKlicken Sie
MouseLeftButtonDown=""dann MouseLeftButtonDown="Button_MouseLeftButtonDown"in der erstellten Codeabschnittsmethode erneut auf die Registerkarte und dann erneut auf die Registerkarte Button_MouseLeftButtonDown.

Ebattulga
quelle
21

Sara Ford hat diesen Markt in die Enge getrieben.

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

Mehr Visual Studio-Tipps und -Tricks, als Sie sich vorstellen können.

Einige andere:

  • Die dreimonatigen Testeditionen von Visual Studio 2005 und 2008 sind voll funktionsfähig und können unbegrenzt (für immer) verwendet werden, indem die Systemuhr vor dem Öffnen von VS zurückgestellt wird. Wenn VS geöffnet wird, stellen Sie die Systemuhr erneut ein, damit Ihre Datenzeiten nicht durcheinander geraten.
  • Aber das ist wirklich Piraterie und ich kann es nicht empfehlen, insbesondere wenn jemand mit einer .edu-Adresse über Microsoft Dreamspark eine voll funktionsfähige Pro-Version von VS2008 erhalten kann .
  • Mit Visual Studio können Sie ausführbare Dateien von Drittanbietern öffnen und darin gespeicherte eingebettete Ressourcen (Dialoge, Zeichenfolgentabellen, Bilder usw.) durchsuchen.
  • Das Debuggen von Visualisierern ist nicht gerade eine "versteckte" Funktion, aber sie werden etwas vernachlässigt und sind sehr nützlich, da Sie zusätzlich zu den bereitgestellten Visualisierern Ihre eigenen für bestimmte Datensätze rollen können .
  • Debugger-Befehl "Set Instruction Pointer" oder "Set Next Statement".
  • Bedingte Haltepunkte (wie KiwiBastard feststellte).
  • Mit Quickwatch usw. können Sie nicht nur den Wert einer Variablen auswerten, sondern auch Laufzeitausdrücke um diese Variable.
user2189331
quelle
3
Wenn es wirklich Piraterie ist (worüber ich Ihnen zustimme), warum würden Sie es dann überhaupt erwähnen?
Ryan Lundy
1
Kyralessa, weil es einigen Leuten wahrscheinlich egal ist. Da die Express-Editionen kostenlos sind, bezweifle ich, dass es heutzutage einen tatsächlichen Grund gibt, eine Raubkopien-VS-Version zu verwenden.
Joey
21

T4 (Text Template Transformation Toolkit) . T4 ist ein Codegenerator, der direkt in Visual Studio integriert ist

Shiju
quelle
Hinweis: Nicht die Express-Editionen. (Trotzdem ein toller Tipp.)
j_random_hacker
17

Benutzerdefinierte IntelliSense-Dropdown-Höhe , z. B. Anzeige von 50 Elementen anstelle der Standardgröße, die IMO lächerlich klein ist (8).

(Ändern Sie dazu einfach die Größe des Dropdowns, wenn Sie es das nächste Mal sehen, und Visual Studio merkt sich die Größe, die Sie beim nächsten Öffnen eines Dropdowns ausgewählt haben.)

Brann
quelle
4
Sie können die Größe in VS2010 nicht mehr ändern, es nervt mich bis zum Äußersten.
Manixrock
In Vs2008 kann ich die Breite ändern, aber nicht die Höhe.
Kapil
16

Heute entdeckt:

Ctrl + .

Ruft das Kontextmenü für das Refactoring auf (dann eines, auf das über den unterstrichenen letzten Buchstaben einer Klasse / Methode / Eigenschaft zugegriffen werden kann, die Sie gerade umbenannt haben - fahren Sie mit der Maus über das Menü oder "Strg" + ".").

Muxa
quelle
Alt + Umschalt + F10 macht das auch (mit C # -Tasten)
Kyle Trauberman
4
Viel besser als zu versuchen, das winzige Mausklickziel in dieser Situation zu jagen
Richard Ev
14

Viele Leute kennen den Debugger nicht oder verwenden ihn nicht in vollem Umfang - IE verwendet ihn nur, um den Code zu stoppen, aber klicken Sie mit der rechten Maustaste auf den roten Kreis, und es gibt viel mehr Optionen wie "Unter Bedingung brechen", "Code auf Pause ausführen".

Sie können Variablenwerte zur Laufzeit auch mit dem Debugger ändern. Dies ist eine großartige Funktion. Speichert das erneute Ausführen von Code, um einen dummen Logikfehler usw. zu beheben.

JamesSugrue
quelle
13


Zeilentransponierung , Umschalt-Alt-T Vertauscht zwei Zeilen (aktuelle und nächste) und bewegt den Cursor zur nächsten Zeile. Ich liebe es. Ich habe sogar ein Makro geschrieben, das die Position erneut um eine Zeile geändert, die Zeilentransponierung ausgeführt und die Zeilenposition erneut geändert hat, sodass alles so aussieht, als würde ich die aktuelle Zeile gegen die vorherige austauschen (Zeilentransposition umkehren).

Worttransponierung, Umschalt-Strg-T

okutane
quelle
Dadurch wird die Linie auf der Seite nach unten verschoben. Wie bewegt man eine Linie auf der Seite nach oben?
Alex Baranosky
GordonG, ich habe folgendes Makro geschrieben: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Könnte hier damit
anfangen,
11

Bei der Entwicklung von C ++ kompiliert Strg-F7 nur die aktuelle Datei.

Sakin
quelle
11

Dokumentumriss im FormsDesigner (STRG + ALT + T )

Schnelle Umbenennung, Bestellung und mehr!

Pondidum
quelle
Ich kann nicht glauben, dass ich nichts davon wusste. Mein Leben ist verändert.
HipsterZipster
11

So synchronisieren Sie die aktuelle Datei automatisch mit dem Projektmappen-Explorer. Sie müssen also nicht nachsehen, wo sich die Datei in der Projektstruktur befindet

Extras -> Optionen -> Projekte und Lösungen -> "Aktives Element im Projektmappen-Explorer verfolgen"

Bearbeiten: Wenn Ihnen dies zu nervig wird, können Sie das Makro von Dan Vanderboom verwenden , um diese Funktion bei Bedarf per Tastendruck aufzurufen.

(Hinweis: Aus dem Kommentar unten von Jerry entnommen).

SDX2000
quelle
3
das wird nach einer Weile nervig. Ich wünschte, es gäbe eine Tastenkombination, um dies auf Anfrage zu tun.
Kenwarner
2
Hier ist ein Beitrag darüber, wie Sie bei Bedarf nachverfolgen können. dvanderboom.wordpress.com/2008/03/21/…
Jerry
Wenn Sie viele Dateien geöffnet haben, kann VS (ohne Vorwarnung) beendet werden, wenn Sie Dinge wie "Alles außer diesem schließen" ausführen (von PowerCommands, glaube ich).
Benjol
Resharper macht dies überflüssig, da Sie mit Umschalt + Alt + L direkt zur aktuellen Datei im Projektmappen-Explorer springen können. oder Strg + Umschalt + N, um nach einer beliebigen Datei in der Lösung zu suchen.
cbp
9

Ich bin nicht sicher, ob es "versteckt" ist, aber nicht viele Leute wissen davon - Pseudoregister . Kommt sehr praktisch beim Debuggen, ich habe @ERR, hr die ganze Zeit in meinem Überwachungsfenster.

yrp
quelle
1
Ich habe gehört, dass @xxx zugunsten von $ xxx ausläuft. FWIW, WinDbg verwendet auch das Formular $ xxx.
Constantin
Kannst du nicht einfach "hr, hr" in einem Überwachungsfenster machen? Ich habe das schon in VC6 benutzt ...
LarryF
Ausgezeichnet. Wie aus dem verlinkten Artikel hervorgeht, vereinfacht das Festlegen von bedingten Haltepunkten in @TIB das Debuggen von Multithread-Apps drastisch.
j_random_hacker
9

Strg-Minus, Strg-Plus, navigiert vor und zurück, wo Sie zuletzt waren (allerdings nur geöffnete Dateien).

Ilya Ryzhenkov
quelle
Ja, LIEBE diese - benutze sie jeden Tag.
MaseBase
Sehr nützlich, wenn Sie F + 12 drücken, um zu einer Definition zu gelangen, und dann dorthin zurückkehren möchten, wo Sie waren.
Thomas Bratt
9

Ich benutze es nicht oft, aber ich liebe:

ctrl-alt + mouse select

In einem rechteckigen Block auswählen, Grenzen blockieren.

Wie in den Kommentaren erwähnt,

alt + mouse select

Macht nur einen einfachen rechteckigen Block.

Mittags Seide
quelle
4
Eine Ablehnung ist amüsant, da dies eine gültige Aktion in VS ist :) Viel Glück für Sie, mysteriöser Hasser.
Mittag Seide
2
Vielleicht ist es ein bisschen früh, aber als ich das las, wollte ich es auf Firefox ausprobieren. Es stellt sich heraus, dass Sie mit Strg-Alt-Umschalt das gesamte Dokument mit der Maus über den Bildschirm ziehen können, ähnlich wie bei einem PDF-Dokument.
KdgDev
Wie unterscheidet es sich von Alt + Mausauswahl?
Guffa
Guffa: Es geht nur um Blockenden. Mit Alt-Select können Sie jeden Bereich auswählen, der etwas enthält. Sie sind anders.
Mittag Seide
Obwohl ich denke, dass es nur "Strg-Alt" sein kann, nicht auch "Verschiebung".
Mittag Seide
9

Folgendes habe ich gelernt (für C #):

Sie können den Cursor von der schließenden geschweiften Klammer zur öffnenden geschweiften Klammer bewegen, indem Sie Strg +] drücken.

Ich habe dies bei einem SO-Thema gelernt, das ein Betrüger dieses Themas ist:

"Versteckte Geheimnisse" des Visual Studio .NET-Debuggers?

Jay Riggs
quelle
8

STRG + Umschalt + U -> Großbuchstaben hervorgehoben. STRG + U -> Kleinbuchstaben im hervorgehobenen Bereich Hervorragend geeignet, damit meine SQL-Anweisungen beim Einfügen in Zeichenfolgenabfragen genau richtig aussehen.

Auch nützlich für Code, den Sie online gefunden haben, wo ALLES IN GROSSBUCHSTABEN IST.

rauben
quelle
2
Schade, dass sie keine CamelCase CTRL + Shift-Option haben ... :) Das ist wahrscheinlich mein Refactor Nr. 1, den ich mache, wenn ich ein Projekt übernehme ... Larry
LarryF
8

Mittlere Maustaste Durch Klicken auf die Registerkarte Editor wird die Registerkarte geschlossen.

Kevin Driedger
quelle
1
Ich benutze dies die ganze Zeit, wenn ich codiere, weil ich nach Code suche und ihn dann schließe (das "X" zum Schließen ist ziemlich weit).
Kevin Driedger
8

Verwenden Sie die folgende Syntax im QuickWatch-Fenster von Visual Studio, um Datenblöcke als n-Byte- "Array" anzuzeigen:

variable, n

Zum Beispiel, um eine Variable mit dem Namen anzuzeigen fooGeben den folgenden Ausdruck in das QuickWatch-Fenster 256-Byte-Array anzuzeigen:

foo, 256

Dies ist besonders nützlich, wenn Zeichenfolgen angezeigt werden, die nicht nullterminiert sind, oder Daten, auf die nur über einen Zeiger zugegriffen werden kann. Sie können das Speicherfenster von Visual Studio verwenden, um ein ähnliches Ergebnis zu erzielen. Die Verwendung des QuickWatch-Fensters ist jedoch für eine schnelle Überprüfung häufig bequemer.

Emerick Rogul
quelle