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?


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.


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.


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!


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.


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.


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


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 #


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".


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.


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

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! :) :)


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


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).


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.


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.

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


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.)


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" + ".").


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.


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


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.


11

Dokumentumriss im FormsDesigner (STRG + ALT + T )

Schnelle Umbenennung, Bestellung und mehr!


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).


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.


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).


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.


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


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.


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.


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.

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.