Funzionalità nascoste di Visual Studio (2005-2010)?


182

Visual Studio è un prodotto talmente massiccio che, anche dopo anni di lavoro, a volte mi imbatto in un modo nuovo / migliore di fare cose che non sapevo nemmeno fossero possibili.

Per esempio-

  • Crtl+ R, Ctrl+ Wper mostrare gli spazi bianchi. Essenziale per la modifica degli script di build di Python.

  • In "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Crea una stringa denominata Guide con il valore "RGB (255,0,0), 80" per avere una linea rossa nella colonna 80 nell'editor di testo.

Su quali altre funzioni nascoste ti sei imbattuto?


Grazie! Finalmente un marcatore a 80 colonne in VS :)
Jonas Gulle,

Grazie. in realtà, mi sono imbattuto in "mostra spazi bianchi" per caso, e volevo liberarmene. molte grazie!
Arsen Zahray,

Risposte:


123

Effettua una selezione con ALT premuto: seleziona un quadrato di testo anziché intere righe.


9
Ctrl-Alt selezionerà parole intere. Alt cambierà la dimensione dell'area di selezione di un carattere alla volta.
licenziato il

4
Funziona anche con MS Word e OO Writer. L'ho usato molto.
Bård,

3
Questo (chiamato "selezione blocco") funziona anche con il tasto Alt + Maiusc, quindi usa i tasti freccia.
Arolson101,

1
Inoltre, se selezioni una colonna orizzontale vuota in questo modo, qualsiasi cosa digiti verrà duplicata su ogni riga, comportandosi come un enorme cursore :)
Sedat Kapanoglu,

1
Ho visto questo essere venduto come funzionalità per VS 2010, ma l'ho appena provato in VS 2008 e ha funzionato. Sono sbalordito. questo è incredibilmente utile!
DaveDev,

95

Tracepoint!

Inserisci un punto di interruzione su una riga di codice. Apri la finestra Punti di interruzione e fai clic con il pulsante destro del mouse sul nuovo punto di interruzione. Seleziona "When Hit ...". Spuntando la casella di controllo "Stampa un messaggio", Visual Studio stamperà un messaggio sull'output di debug ogni volta che viene eseguita la riga di codice, piuttosto che (o oltre) interromperla. Puoi anche farlo eseguire una macro mentre passa la linea.


1
So di essere in ritardo al gioco, ma questa è una grande caratteristica di cui non ho mai saputo nulla!
Jerry,

7
Per ottenere punti extra puoi effettuare un'assegnazione variabile locale nel pulsante quando premuto. {localVariable = 1.0f} o aumenta i valori di {staticVariable + = 0.1f}
Charles Beattie,

91

È possibile trascinare il codice nella Casella degli strumenti. Provalo!


Merda santa così puoi! (Grazie!)
Ali Parr

non sembra essere molto utile sui frammenti però
jk.

33
Caro Dio ... è un livello completamente nuovo di copia e incolla. Copiare e incollare-incolla-incolla. Conosco molti programmatori che spero non scoprano mai che puoi farlo.
Ryan Lundy,

Sarebbe bello se si potesse dire di valutare il codice quando si fa clic sul pulsante, come un bookmarklet.
intuito l'

oh no Cosa sta facendo questa funzione bastardata!

79

Fai clic su un identificatore (nome della classe, variabile, ecc.) Quindi premi F12"Vai alla definizione". Sono sempre stupito da quante persone guardo il codice utilizzare il metodo più lento del tasto destro del mouse -> "Vai alla definizione".

MODIFICARE: Quindi puoi usare Ctrl+ -per tornare al punto in cui eri.


8
E non dimenticare Ctrl + Maiusc + - [control shift meno] per saltare in avanti!
Kevin Pullin,

5
E Maiusc F12 per Trova tutti i riferimenti
Benjol,

2
Puoi anche usare ALT + freccia sinistra per tornare al punto in cui eri
arolson101

1
Con le impostazioni del tasto VB, Shift-F2 esegue anche un Vai alla definizione.
Ryan Lundy,

1
Potresti anche fare clic con il tasto destro del mouse su G se in primo luogo stai seguendo il percorso del mouse.
Tsilb,

57

CTRL + MAIUSC + V scorrerà tra gli appunti, Visual Studio conserva una cronologia delle copie.


questo può essere trovato in edit.cycleclipboardring nelle mappature della tastiera (in Visual c ++ questo è Ctrl-Maiusc-Inserisci, non Ctrl-Maiusc-V)
Predefinito

52

Sara Ford offre molti consigli utili: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Ma alcuni dei miei preferiti sono frammenti di codice, Ctrl + .per aggiungere un using<Namespace> o generare uno stub di metodo. Non posso vivere senza quello.

Dai un'occhiata a un fantastico elenco nel poster di associazione dei tasti di scelta rapida di Visual Studio 2008: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en


1
Sara Ford è la dea di Visual Studio. Non potrei raccomandarla abbastanza.
Chris Charabaruk,

Sono totalmente d'accordo sul motivo per cui condivido il suo lavoro. Sto davvero amando la sua serie attuale che copre il debug
Aaron Powell,

Triste di aver smesso di fare la punta del giorno, anche se è passato così tanto tempo da quando ha lavorato con le viscere di VS che è completamente comprensibile che avesse bisogno di andare avanti ...
Knobloch,

Grazie per aver menzionato CTRL +. Stavo cercando esattamente questo.
Sorin Comanescu,

Ho sempre usato CTRL + ALT + F10. Non conoscevo CTRL +. fa la stessa cosa - grazie. Molto più comodo.
Noam Gal,

49
CTRL-K, CTRL-D

Riformatta documento!
Questo è sotto le combinazioni di tasti VB, non sono sicuro di C #


3
sì, funziona con C #, Web Designer, editor XML, editor CSS, editor XSD, JavaScript (fino a un certo punto). La maggior parte dei tipi di file supportati
Aaron Powell,

8
Ctrk-K, Ctrl-F per C ++
MSalters il

7
Uso Ctrl-E, Ctrl-D
configuratore

Ctrl + K, Ctrl + F formatta anche qualunque testo tu abbia selezionato (in C #, non sicuro degli altri).
Zann Anderson,

43

Quante volte esegui il debug di un array in un quickwatch o in una finestra di controllo e Visual Studio ti mostra solo il primo elemento? Aggiungi ", N" alla fine della definizione per fare in modo che Studio mostri anche i prossimi N elementi. IE "this-> m_myArray" diventa "this-> m_array, 5".


41

Ricerca incrementale: mentre si ha un hit di apertura del documento di origine (CTRL + I) e si digita la parola che si sta cercando, è possibile premere nuovamente (CTRL + I) per vedere le parole corrispondenti al proprio input.


4
Si chiama "> i <ricerca incrementale".
Constantin,

Al contrario di> ex <ricerca cremental, che è ciò che implementa Firefox.
Kibibu,

Proveniente dal mondo Emacs, questa è la prima caratteristica che ho cercato. :)
JesperE

37

È possibile utilizzare i seguenti codici nella finestra dell'orologio.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception

35
  • Ctrl-K, Ctrl-C per commentare un blocco di testo con // all'inizio
  • Ctrl-K, Ctrl-U per decommentare un blocco di testo con // all'inizio

Non posso vivere senza di essa! :)


Vero anche in VB.NET, tranne con "piuttosto che //
ChrisA

Vero anche in SQL Server Management Studio, ad eccezione dell'utilizzo della sequenza di escape dei commenti SQL di '-'
Thomas Bratt,

3
Ho sempre desiderato che potessi attivare o disattivare i commenti? Perché vorresti "commentare due volte" qualcosa? Sicuramente premendolo di nuovo dovrebbe annullare il commento ...
Dan Diplo,

16
A volte vuoi commentare l'intera funzione e alcune righe all'interno sono già commentate (cioè sono commenti propri). In questi casi non è ovvio cosa fare se si ha un interruttore, quindi è generalmente meglio rendere esplicita la decisione.
Pavel Minaev,

1
Nota che se inizi all'inizio del testo piuttosto che all'inizio della riga otterrai / * * / invece di //. Questo è il modo in cui la mia funzione più usata
Default

25

Impedire al debugger di entrare in funzioni banali.

Quando si passa attraverso il codice nel debugger, è possibile dedicare molto tempo a entrare e uscire da funzioni a cui non si è particolarmente interessati, con nomi come GetID () o std :: vector <> (), per scegliere un esempio C ++. È possibile utilizzare il registro per fare in modo che il debugger li ignori.

Per Visual Studio 2005, devi andare su HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver e aggiungere valori di stringa contenenti espressioni regolari per ogni funzione o insieme di funzioni che desideri escludere; per esempio

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

Puoi anche sovrascriverli per singole eccezioni. Ad esempio, supponiamo di voler entrare nel distruttore della classe vettoriale:

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

Puoi trovare i dettagli per altre versioni di Visual Studio su http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx


Wow, è fantastico. Non avevo idea che ciò fosse possibile.
j_random_hacker,

23

Ctrl-F10 : corsa al cursore durante il debug. Mi ci sono voluti anni per trovarlo, e lo uso sempre;

Ctrl-E, Ctrl-D : applica la formattazione standard (che puoi definire).


1
Ctrl + Maiusc + F10 per saltare tutto il codice ed eseguire il cursore. Nifty quando si tenta di testare specifiche righe di codice.
Samuel Slade,

23

Funzione chiave TAB .

  1. Se conosci il nome della chiave dello snippet, scrivi e fai clic su Doppia scheda. ad esempio: Scrivi

    foreach

e quindi fai clic due volte sul tasto Tab per

foreach (object var in collection_to_loop)
{

}

2. Se scrivi un evento, scrivi qui

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

e quindi fai clic due volte sul tasto Tab per

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

La funzione btn_Click scrive automaticamente

  1. nell'editor XAML, scrivi qualsiasi evento. per esempio:

MouseLeftButtonDownquindi fare clic sulla scheda,
MouseLeftButtonDown=""quindi fare nuovamente clic sulla scheda MouseLeftButtonDown="Button_MouseLeftButtonDown"nel Button_MouseLeftButtonDownmetodo della sezione di codice creato.


21

Sara Ford ha questo mercato alle spalle.

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

Più suggerimenti e trucchi per Visual Studio di quanti tu possa agitare.

Alcuni altri:

  • Le versioni di prova di 3 mesi di Visual Studio 2005 e 2008 sono perfettamente funzionanti e possono essere utilizzate indefinitamente (per sempre) ripristinando l'orologio di sistema prima di aprire VS. Quindi, quando VS viene aperto, imposta nuovamente l'orologio di sistema in modo che i tuoi dati non vengano rovinati.
  • Ma questa è davvero la pirateria e non posso raccomandarla, specialmente quando chiunque abbia un indirizzo .edu può ottenere una versione Pro completamente funzionale di VS2008 tramite Microsoft Dreamspark .
  • È possibile utilizzare Visual Studio per aprire eseguibili di terze parti e sfogliare le risorse incorporate (finestre di dialogo, tabelle di stringhe, immagini, ecc.) Archiviate all'interno.
  • I visualizzatori di debug non sono esattamente una funzionalità "nascosta" ma sono in qualche modo trascurati e super utili, poiché oltre a utilizzare i visualizzatori forniti è possibile creare il proprio per set di dati specifici.
  • Comando "Imposta puntatore istruzioni" o "Imposta istruzione successiva" del debugger.
  • Breakpoint condizionali (come notato da KiwiBastard).
  • È possibile utilizzare Quickwatch ecc. Per valutare non solo il valore di una variabile, ma espressioni di runtime attorno a quella variabile.

3
Se si tratta davvero di pirateria (di cui sono d'accordo con te), allora perché dovresti parlarne?
Ryan Lundy,

1
Kyralessa, perché ad alcune persone probabilmente non importa. Tuttavia, dato che le edizioni Express sono gratuite, dubito che al giorno d'oggi esista un vero motivo per usare una versione VS piratata.
Joey,


17

Altezza del menu a discesa IntelliSense personalizzata , ad esempio la visualizzazione di 50 elementi invece del valore predefinito che è ridicolmente piccolo IMO (8).

(Per fare ciò, ridimensiona il menu a discesa la prossima volta che lo vedi e Visual Studio ricorderà la dimensione selezionata la prossima volta che apre un menu a discesa.)


4
Non puoi più ridimensionarlo in VS2010, mi infastidisce senza fine.
Manixrock,

in Vs2008 sono in grado di modificare la larghezza ma non l'altezza.
Kapil,

16

Scoperto oggi:

Ctrl + .

Visualizza il menu di scelta rapida per il refactoring (quindi uno accessibile tramite l'ultima lettera sottolineata di una classe / metodo / proprietà che hai appena rinominato: passa con il mouse per il menu o "Ctrl" + ".")


Alt + Shift + F10 fa anche questo (usando le combinazioni di tasti C #)
Kyle Trauberman,

4
Molto meglio che cercare di cacciare il piccolo bersaglio del clic del mouse in questa situazione
Richard Ev

14

Molte persone non conoscono o usano il debugger al massimo: IE lo usa solo per fermare il codice, ma fai clic con il pulsante destro del mouse sul cerchio rosso e ci sono molte più opzioni come break on condition, esegui il codice in break.

Inoltre è possibile modificare i valori delle variabili in fase di esecuzione utilizzando il debugger, che è una grande funzionalità: salva il codice di riesecuzione per correggere un errore logico sciocco ecc


13

Line transpose, Shift-Alt-T
Scambia due righe (corrente e successiva) e sposta il cursore sulla riga successiva. Lo amo. Ho anche scritto una macro che ha cambiato di nuovo la posizione di una riga, eseguito il trasposizione della linea e cambiato di nuovo la posizione della linea in modo che tutto sembri scambiare la linea corrente con la precedente (trasposizione della linea inversa).

Trasposizione parola, Maiusc-Ctrl-T


Questo fa spostare la linea in basso nella pagina, come si fa a spostare una linea in alto nella pagina?
Alex Baranosky,

GordonG, ho scritto la seguente macro: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane

1
Potrebbe farcela qui come risulta :)
Benjol,

11

Quando si sviluppa C ++, Ctrl-F7 compila solo il file corrente.


11

Struttura del documento in FormsDesigner ( CTRL + ALT + T )

Controllo rapido rinominazione, ordinazione e altro!


Non posso credere di non saperlo. La mia vita è cambiata
HipsterZipster

11

Per sincronizzare automaticamente il file corrente con Esplora soluzioni. Quindi non devi guardare dove risiede il file nella struttura del progetto

Strumenti -> Opzioni -> Progetti e soluzioni -> "Traccia elementi attivi in ​​Esplora soluzioni"

Modifica: se questo diventa troppo fastidioso per te, puoi usare la macro di Dan Vanderboom per invocare questa funzione su richiesta premendo un tasto.

(Nota: tratto dal commento qui sotto di Jerry).


3
questo diventa fastidioso dopo un po '. Vorrei che ci fosse una scorciatoia da tastiera per farlo su richiesta.
kenwarner,

2
Ecco un post su come monitorare su richiesta. dvanderboom.wordpress.com/2008/03/21/…
Jerry

Se hai molti file aperti, può uccidere VS (senza preavviso) se fai cose come 'Chiudi tutto tranne questo' (da PowerCommands, penso).
Benjol,

Resharper rende necessario questo ridondante in quanto è possibile fare Shift + Alt + L per passare direttamente al file corrente in Esplora soluzioni; oppure Ctrl + Maiusc + N per cercare parole chiave per qualsiasi file nella soluzione.
cbp

9

Non sono sicuro che sia "nascosto", ma non molte persone lo sanno - pseudoregisters . È molto utile durante il debug, ho sempre @ERR, hr nella mia finestra dell'orologio.


1
Ho sentito che @xxx è stato ritirato a favore di $ xxx. FWIW, WinDbg utilizza anche il modulo $ xxx.
Constantin,

Non puoi semplicemente fare "hr, hr" nella finestra di un orologio? L'ho usato fino in fondo in VC6 ...
LarryF,

Eccellente. Come suggerisce l'articolo collegato, l'impostazione di breakpoint condizionali su @TIB semplifica drasticamente il debug delle app multithread.
j_random_hacker,

9

Ctrl-Meno, Ctrl-Plus, naviga avanti e indietro dove sei stato di recente (solo file aperti, però).


Sì, ADORO questi, usali tutti i giorni.
MaseBase,

Molto utile se premi F + 12 per andare a una definizione e poi vuoi tornare dove eri.
Thomas Bratt,

9

Non lo uso spesso, ma amo:

ctrl-alt + mouse select

Per selezionare in un blocco rettangolare, per 'bloccare' i confini.

Come notato nei commenti,

alt + mouse select

Fa solo un semplice blocco rettangolare.


4
Un downvote è divertente, dato che si tratta di un'azione valida in VS :) Buona fortuna, misterioso odio.
Noon Silk,

2
Forse è un po 'presto, ma leggendo questo mi è venuta voglia di provarlo su Firefox. Si scopre che ctrl-alt-shift ti permette di usare il mouse per trascinare l'intero documento sullo schermo, in modo simile a come funziona un documento PDF.
KdgDev,

In cosa differisce da alt + mouse select?
Guffa,

Guffa: va solo ai blocchi. alt-select ti consente di scegliere qualsiasi area contenente qualcosa. Sono diversi.
Noon Silk,

Anche se penso che possa essere solo 'ctrl-alt', non anche 'shift'.
Noon Silk,


8

CTRL + Maiusc + U -> Sezione evidenziata maiuscola. CTRL + U -> Minuscola la sezione evidenziata Ottima per far sembrare le mie istruzioni SQL giuste quando le inseriamo nelle query di stringa.

Utile anche per il codice che hai trovato online in cui TUTTO È IN MAIUSCOLO.


2
Peccato che non abbiano un'opzione CTRL + Shift di CamelCase ... :) Questo è probabilmente il mio
rifrattore

8

Pulsante centrale del mouse Fare clic sulla scheda dell'editor per chiudere la scheda.


1
Lo uso sempre quando sto codificando perché cerco il codice e poi lo chiudo (la "X" per la chiusura è piuttosto lontana).
Kevin Driedger,

8

Per visualizzare qualsiasi blocco di dati come un "array" n-byte, utilizzare la sintassi seguente nella finestra QuickWatch di Visual Studio:

variable, n

Ad esempio, per visualizzare una variabile denominata foocome matrice a 256 byte, immettere la seguente espressione nella finestra QuickWatch:

foo, 256

Ciò è particolarmente utile quando si visualizzano stringhe che non hanno una terminazione nulla o dati accessibili solo tramite un puntatore. È possibile utilizzare la finestra Memoria di Visual Studio per ottenere un risultato simile, ma l'utilizzo della finestra QuickWatch è spesso più conveniente per un controllo rapido.

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.