¿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?


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


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.


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!


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.


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.


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


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 #


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


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.


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

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


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


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


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.


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.

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


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


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.


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


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.


11

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

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


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


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.


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


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.


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.


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.