¿Características ocultas de Visual Studio (2005-2010)?

182

Visual Studio es un producto tan grande que, incluso después de años de trabajar con él, a veces me encuentro con una nueva / mejor forma de hacer cosas o cosas que ni siquiera sabía que eran posibles.

Por ejemplo-

  • Crtl+ R, Ctrl+ Wpara mostrar espacios en blanco. Esencial para editar scripts de compilación de Python.

  • En "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor" Crear una cadena llamada Guías con el valor "RGB (255,0,0), 80" para tener una línea roja en la columna 80 en el editor de texto.

¿Con qué otras características ocultas te has topado?

shoosh
fuente
¡Gracias! Finalmente un marcador de 80 columnas en VS :)
Jonas Gulle
Gracias. En realidad, me topé con "mostrar espacios en blanco" por accidente, y quería deshacerme de él. ¡muchas gracias!
Arsen Zahray

Respuestas:

123

Haga una selección con ALT presionada: selecciona un cuadrado de texto en lugar de líneas enteras.

shoosh
fuente
9
Ctrl-Alt seleccionará palabras enteras. Alt cambiará el tamaño del área de selección por un carácter a la vez.
Firedfly
44
Esto también funciona en MS Word y OO Writer. Lo he usado mucho.
Bård
3
Esto (llamado "selección de bloque") también funciona con el teclado, mantenga presionada la tecla Alt + Mayús y luego use las teclas de flecha.
arolson101
1
Además, si selecciona una columna horizontal vacía de esta manera, todo lo que escriba se duplicará en cada línea, comportándose como un cursor enorme :)
Sedat Kapanoglu
1
Vi que esto se vendía como una característica para VS 2010, pero lo probé en VS 2008 y funcionó. Estoy asombrado. ¡Esto es increíblemente útil!
DaveDev
95

Tracepoints!

Pon un punto de interrupción en una línea de código. Abra la ventana Puntos de interrupción y haga clic derecho en el nuevo punto de interrupción. Seleccione 'Cuando se golpea ...'. Al marcar la casilla de verificación 'Imprimir un mensaje', Visual Studio imprimirá un mensaje en la Salida de depuración cada vez que se ejecute la línea de código, en lugar de (o además de) romperla. También puede hacer que ejecute una macro a medida que pasa la línea.

Charles Anderson
fuente
1
Sé que llego tarde al juego, ¡pero esa es una gran característica que nunca conocí!
Jerry
77
Para obtener puntos extra, puede hacer una asignación de variable local en el botón cuando se presiona. {localVariable = 1.0f} o aumente los valores en {staticVariable + = 0.1f}
Charles Beattie
91

Puede arrastrar el código al cuadro de herramientas. ¡Intentalo!

jfs
fuente
Santa mierda para que puedas! (¡Gracias!)
Ali Parr
sin embargo, no parece ser muy útil sobre los fragmentos
jk.
33
Querido Dios ... es un nivel completamente nuevo de copiar y pegar. Copiar y pegar, pegar y pegar. Conozco a muchos programadores que espero nunca descubran que puedes hacer esto.
Ryan Lundy
Sería genial si pudieras decirle que evalúe el código cuando hagas clic en el botón, como un marcador.
intuido el
Oh no. ¿Qué está haciendo esta función bastardize?
79

Haga clic en un identificador (nombre de clase, variable, etc.) y luego presione F12"Ir a definición". Siempre me sorprende la cantidad de personas que veo el código usando el método más lento de clic derecho -> "Ir a la definición".

EDITAR: Luego puedes usar Ctrl+ -para volver a donde estabas.

Craig
fuente
8
¡Y no olvide Ctrl + Shift + - [control shift menos] para saltar hacia adelante!
Kevin Pullin
55
Y Shift F12 para Buscar todas las referencias
Benjol
2
También puede usar ALT + flecha izquierda para volver a donde estaba
arolson101
1
Con la configuración de teclas VB, Shift-F2 también realiza una definición Ir a.
Ryan Lundy
1
También podría hacer clic con el botón derecho en G si está yendo a la ruta del mouse en primer lugar.
tsilb
57

CTRL + MAYÚS + V pasará por su portapapeles, Visual Studio mantiene un historial de copias.

sontek
fuente
esto se puede encontrar en edit.cycleclipboardring en asignaciones de teclado (en visual c ++ esto es Ctrl-Shift-Insert, no Ctrl-Shift-V)
Predeterminado
52

Sara Ford cubre muchos consejos encantadores: http://blogs.msdn.com/saraford/archive/tags/Visual+Studio+2008+Tip+of+the+Day/default.aspx

Pero algunos de mis favoritos son fragmentos de código, Ctrl+ .para agregar un using<Namespace> o generar un código auxiliar de método. No puedo vivir sin eso.

Vea una gran lista en el póster de Visual Studio 2008 C # Keybinding: http://www.microsoft.com/downloadS/details.aspx?familyid=E5F902A8-5BB5-4CC6-907E-472809749973&displaylang=en

Slace
fuente
1
Sara Ford es la diosa de Visual Studio. No podría recomendarla lo suficiente.
Chris Charabaruk
Totalmente de acuerdo con lo que comparto su trabajo. Realmente me encanta su serie actual que cubre la depuración
Aaron Powell
Triste que dejar de hacer la punta del día, a pesar de que ha pasado tanto tiempo desde que trabajó con las tripas de VS que es totalmente comprensible que necesitaba para seguir adelante ...
Knobloch
Gracias por mencionar CTRL +. Estaba buscando este exactamente.
Sorin Comanescu
Siempre estaba usando CTRL + ALT + F10. No sabía CTRL +. hace lo mismo, gracias. Mucho más cómodo.
Noam Gal
49
CTRL-K, CTRL-D

Reformatear documento!
Esto está bajo las combinaciones de teclas de VB, no estoy seguro acerca de C #

Mark Glorie
fuente
3
sí, funciona en C #, Web Designer, editor XML, editor CSS, editor XSD, JavaScript (hasta cierto punto). La mayoría de los tipos de archivos admitidos
Aaron Powell el
8
Ctrk-K, Ctrl-F para C ++
MSalters
77
Uso Ctrl-E, Ctrl-D
configurador
Ctrl + K, Ctrl + F también formatea cualquier texto que haya seleccionado (en C #, no estoy seguro acerca de otros).
Zann Anderson
43

¿Cuántas veces depura una matriz en un reloj rápido o una ventana de reloj y solo hace que Visual Studio le muestre el primer elemento? Agregue ", N" al final de la definición para que el estudio le muestre también los próximos N elementos. IE "this-> m_myArray" se convierte en "this-> m_array, 5".

tenpn
fuente
41

Búsqueda incremental: mientras tiene un documento fuente abierto, presione (CTRL + I) y escriba la palabra que está buscando, puede presionar (CTRL + I) nuevamente para ver las palabras que coinciden con su entrada.

Leyu
fuente
44
Se llama "> i <búsqueda fundamental".
Constantin
A diferencia de> ex <búsqueda básica, que es lo que implementa Firefox.
kibibu
Viniendo del mundo de Emacs, esta es la primera característica que busqué. :)
JesperE
37

Puede usar los siguientes códigos en la ventana de observación.

@err - display last error
@err,hr - display last error as an HRESULT
@exception - display current exception
Ferruccio
fuente
35
  • Ctrl-K, Ctrl-C para comentar un bloque de texto con // al inicio
  • Ctrl-K, Ctrl-U para descomentar un bloque de texto con // al inicio

¡No puedo vivir sin él! :)

Thomas Bratt
fuente
También es cierto en VB.NET, excepto con 'en lugar de //
ChrisA
También es cierto en SQL Server Management Studio, excepto el uso de la secuencia de escape de comentarios SQL de '-'
Thomas Bratt
3
¿Siempre deseé que pudieras alternar comentarios? ¿Por qué querrías "comentar dos veces" algo? Seguramente presionarlo nuevamente debería dejar de comentar ...
Dan Diplo
16
A veces desea comentar toda la función, y algunas líneas dentro ya están comentadas (es decir, son comentarios adecuados). En tales casos, no es obvio qué hacer si tiene una palanca, por lo que generalmente es mejor hacer que la decisión sea explícita.
Pavel Minaev
1
Tenga en cuenta que si comienza al principio del texto en lugar del comienzo de la línea obtendrá el / * * / en lugar de //. Por cierto, esta es mi característica más utilizada
predeterminado
25

Evitar que el depurador entre en funciones triviales.

Cuando está pasando por el código en el depurador, puede pasar mucho tiempo entrando y saliendo de funciones que no le interesan particularmente, con nombres como GetID () o std :: vector <> (), elegir un ejemplo de C ++. Puede usar el registro para hacer que el depurador los ignore.

Para Visual Studio 2005, debe ir a HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver y agregar valores de cadena que contengan expresiones regulares para cada función o conjunto de funciones que desea excluir; p.ej

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

También puede anularlos para excepciones individuales. Por ejemplo, suponga que desea ingresar al destructor de la clase de vectores:

std :: vector. * :: \ ~. * = Paso a paso

Puede encontrar detalles para otras versiones de Visual Studio en http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx

Charles Anderson
fuente
Wow, esto es asombroso. No tenía idea de que esto fuera posible.
j_random_hacker
23

Ctrl-F10 : ejecuta el cursor durante la depuración. Me llevó años encontrar esto, y lo uso todo el tiempo;

Ctrl-E, Ctrl-D : aplica el formato estándar (que puedes definir).

Joel en Go
fuente
1
Ctrl + Shift + F10 para omitir todo el código y ejecutar el cursor. Ingenioso al intentar probar líneas de código específicas.
Samuel Slade
23

Característica clave TAB .

  1. Si conoce el nombre de la clave de fragmento, escriba y haga doble clic en Tab. por ejemplo: escribir

    foreach

y luego haga clic en la tecla de tabulación dos veces para

foreach (object var in collection_to_loop)
{

}

2. Si escribe algún evento, escriba aquí

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

y luego haga clic en la tecla de tabulación dos veces para

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 función btn_Click escribe automáticamente

  1. en XAML Editor, escriba cualquier evento. por ejemplo:

MouseLeftButtonDownluego haga clic en la pestaña y
MouseLeftButtonDown=""luego haga clic en la pestaña nuevamente MouseLeftButtonDown="Button_MouseLeftButtonDown"en el Button_MouseLeftButtonDownmétodo de sección de código creado.

revs ebattulga
fuente
21

Sara Ford tiene este mercado acorralado.

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

Más consejos y trucos de Visual Studio de los que puede sacudir un palo.

Algunos otros:

  • Las ediciones de prueba de 3 meses de Visual Studio 2005 y 2008 son completamente funcionales y se pueden usar de forma indefinida (para siempre) configurando el reloj del sistema antes de abrir VS. Luego, cuando se abre VS, vuelva a configurar el reloj del sistema para que sus fechas no se arruinen.
  • Pero eso es realmente piratería y no puedo recomendarlo, especialmente cuando cualquiera con una dirección .edu puede obtener una versión Pro totalmente funcional de VS2008 a través de Microsoft Dreamspark .
  • Puede usar Visual Studio para abrir ejecutables de terceros y explorar recursos incrustados (cuadros de diálogo, tablas de cadenas, imágenes, etc.) almacenados en él.
  • Los visualizadores de depuración no son exactamente una función "oculta", pero están algo descuidados y son muy útiles, ya que además de utilizar los visualizadores proporcionados, puede crear sus propios conjuntos de datos específicos.
  • El comando "Establecer puntero de instrucción" o "Establecer siguiente instrucción" del depurador.
  • Puntos de corte condicionales (como señaló KiwiBastard).
  • Puede usar Quickwatch, etc. para evaluar no solo el valor de una variable, sino también las expresiones de tiempo de ejecución alrededor de esa variable.
usuario2189331
fuente
3
Si es realmente piratería (con lo que estoy de acuerdo contigo), ¿por qué lo mencionarías?
Ryan Lundy
1
Kyralessa, porque a algunas personas probablemente no les importa. Sin embargo, con las ediciones Express gratuitas, dudo que haya una razón real hoy en día para usar una versión VS pirateada.
Joey
17

Altura desplegable de IntelliSense personalizada , por ejemplo, que muestra 50 elementos en lugar del valor predeterminado, que es IMO ridículamente pequeño (8).

(Para hacerlo, simplemente cambie el tamaño del menú desplegable la próxima vez que lo vea, y Visual Studio recordará el tamaño que seleccionó la próxima vez que abra un menú desplegable).

Brann
fuente
44
Ya no puede cambiar su tamaño en VS2010, me molesta sin fin.
manixrock
en Vs2008 puedo cambiar el ancho pero no la altura.
Kapil
16

Descubierto hoy:

Ctrl + .

Muestra el menú contextual para refactorizar (luego uno accesible a través de la última letra subrayada de una clase / método / propiedad que acaba de cambiar de nombre: pase el mouse por el menú o "Ctrl" + ".")

Muxa
fuente
Alt + Shift + F10 también hace esto (usando las combinaciones de teclas de C #)
Kyle Trauberman
44
Mucho mejor que tratar de cazar al pequeño objetivo de clic del mouse en esta situación
Richard Ev
14

Mucha gente no conoce o usa el depurador al máximo: IE solo lo usa para detener el código, pero haga clic derecho en el círculo rojo y hay muchas más opciones, como interrupción en la condición, ejecutar código en la interrupción.

También puede cambiar los valores de las variables en tiempo de ejecución utilizando el depurador, que es una gran característica: guarda el código de repetición para corregir un error lógico tonto, etc.

JamesSugrue
fuente
13

Transposición de línea, Shift-Alt-T
Intercambia dos líneas (actual y siguiente) y mueve el cursor a la siguiente línea. Me encanta. Incluso he escrito una macro que cambió nuevamente la posición por una línea, ejecutó la transposición de línea y cambió la posición de la línea nuevamente, por lo que parece que estoy intercambiando la línea actual con la anterior (Transposición de línea inversa).

Transposición de palabras, Shift-Ctrl-T

okutane
fuente
Esto hace que la línea se mueva hacia abajo de la página, ¿cómo hace que una línea se mueva hacia ARRIBA de la página?
Alex Baranosky
GordonG, he escrito la siguiente macro: Sub ReverseLineTranspose () DTE.ActiveDocument.Selection.LineUp DTE.ExecuteCommand ("Edit.LineTranspose") DTE.ActiveDocument.Selection.LineUp End Sub
okutane
1
Podría hacerlo aquí como resulta :)
Benjol
11

Al desarrollar C ++, Ctrl-F7 solo compila el archivo actual.

Sakin
fuente
11

Esquema del documento en FormsDesigner ( CTRL + ALT + T )

Cambio de nombre de control rápido, pedidos y más!

Estanque
fuente
No puedo creer que no supiera sobre esto. Mi vida ha cambiado
HipsterZipster
11

Para sincronizar automáticamente el archivo actual con el Explorador de soluciones. Así que no tiene que mirar dónde vive el archivo en la estructura del proyecto

Herramientas -> Opciones -> Proyectos y soluciones -> "Rastrear elemento activo en el Explorador de soluciones"

Editar: si esto te resulta demasiado molesto, entonces puedes usar la macro de Dan Vanderboom para invocar esta función a pedido con solo presionar una tecla.

(Nota: Tomado del comentario a continuación por Jerry).

SDX2000
fuente
3
Esto se vuelve molesto después de un tiempo. Desearía que hubiera un atajo de teclado para hacer esto a pedido.
kenwarner
2
Aquí hay una publicación sobre cómo realizar un seguimiento bajo demanda. dvanderboom.wordpress.com/2008/03/21/…
Jerry
Si tiene muchos archivos abiertos, puede matar a VS (sin previo aviso) si hace cosas como "Cerrar todo menos esto" (de PowerCommands, creo).
Benjol
Resharper hace que esta necesidad sea redundante, ya que puede hacer Shift + Alt + L para saltar directamente al archivo actual en el Explorador de soluciones; o Ctrl + Shift + N para buscar palabras clave para cualquier archivo en la Solución.
cbp
9

No estoy seguro de si está "oculto", pero no mucha gente lo sabe, pseudoregistros . Resulta muy útil al depurar, tengo @ERR, hr en mi ventana de vigilancia todo el tiempo.

yrp
fuente
1
Escuché que @xxx se está eliminando gradualmente a favor de $ xxx. FWIW, WinDbg también usa el formulario $ xxx.
Constantin
¿No puedes simplemente hacer "hr, hr" en una ventana de vigilancia? Lo he usado todo el tiempo en VC6 ...
LarryF
Excelente. Como sugiere el artículo vinculado, establecer puntos de interrupción condicionales en @TIB simplificará drásticamente la depuración de aplicaciones multiproceso.
j_random_hacker
9

Ctrl-Minus, Ctrl-Plus, navega hacia atrás y adelante donde has estado recientemente (aunque solo archivos abiertos).

Ilya Ryzhenkov
fuente
Sí, me encantan estos, úsalos todos los días.
MaseBase
Muy útil si presionas F + 12 para ir a una definición y luego quieres volver a donde estabas.
Thomas Bratt
9

No lo uso a menudo, pero me encanta:

ctrl-alt + mouse select

Para seleccionar en un bloque rectangular, para 'bloquear' los límites.

Como se señaló en los comentarios,

alt + mouse select

Hace solo un bloque rectangular simple.

Seda del mediodía
fuente
44
Un voto negativo es divertido, dado que esta es una acción válida en VS :) Sin embargo, buena suerte para ti, misterioso enemigo.
Mediodía Seda
2
Tal vez es un poco temprano, pero leer esto me hizo querer probarlo en Firefox. Resulta que ctrl-alt-shift le permite usar el mouse para arrastrar todo el documento por la pantalla, de forma similar a cómo funciona un documento PDF.
KdgDev
¿En qué se diferencia de alt + mouse select?
Guffa el
Guffa: va solo a finales de bloque. alt-select le permite elegir cualquier área que contenga cualquier cosa. Ellos son diferentes.
Mediodía Seda
Aunque creo que puede ser 'ctrl-alt', no 'shift' también.
Mediodía Seda
8

CTRL + Shift + U -> Sección resaltada en mayúscula. CTRL + U -> Poner en minúscula la sección resaltada Ideal para que mis sentencias SQL se vean bien al colocarlas en consultas de cadena.

También es útil para el código que has encontrado en línea donde TODO ESTÁ EN MAYÚSCULAS.

Robar
fuente
2
Lástima que no tengan una opción CamelCase CTRL + Shift ... :) Esa es probablemente mi refactor # 1 que hago cuando me hago cargo de un proyecto ... Larry
LarryF
8

Botón central del mouse Hacer clic en la pestaña del editor cierra la pestaña.

Kevin Driedger
fuente
1
Lo uso todo el tiempo cuando estoy codificando porque estoy buscando código y luego lo cierro (la "X" para cerrar está bastante lejos).
Kevin Driedger
8

Para mostrar cualquier fragmento de datos como una "matriz" de n bytes, utilice la siguiente sintaxis en la ventana QuickWatch de Visual Studio:

variable, n

Por ejemplo, para ver una variable denominada foomatriz de 256 bytes, ingrese la siguiente expresión en la ventana QuickWatch:

foo, 256

Esto es particularmente útil cuando se visualizan cadenas que no tienen terminación nula o datos a los que solo se puede acceder mediante un puntero. Puede usar la ventana de memoria de Visual Studio para lograr un resultado similar, pero usar la ventana QuickWatch a menudo es más conveniente para una verificación rápida.

Emerick Rogul
fuente