¡Hola!
El sábado pasado, tuve el honor de participar en la Dotnet Málaga 2017. Fue un eventazo (no porque yo fuera uno de los ponentes, que conste 😉 ). Fue el evento más grande al sur de España sobre tecnologías Microsoft. Participaron veintiún ponentes, y se ofrecieron quince charlas y dos talleres la mar de interesantes. ¡Y qué narices, que era en mi Málaga! 🙂
En este evento, di una charla sobre teclas rápidas en Visual Studio. Una manera de aumentar nuestra agilidad al programar, sin tener que estar levantando las manos del teclado cada dos por tres.
Este sábado, (aprovechando que tenía la charla aún fresca en la memoria), me colé en la agenda de las 4Sessions de la Fundación Techdencias de la que formo parte, y repetí la charla con algunas mejoras para hacerla algo menos tediosa 🙂 (¡Gracias Carmen y Nacho por las sugerencias!).
El único problema fue que, para intentar aligerar el ambiente y evitar que la gente desconectara demasiado, me dio por intentar hacer un par de trucos de magia, para demostrar que las manos son más rápidas que la vista. Y mirad, sí. Lo que demostré es que mejor voy a seguir dedicándome a programar, porque lo que es hacer magia, no se me da demasiado bien 😉
A parte del estrepitoso fracaso de hacer de trilero y enseñar trucos de cartas, lo cierto es que me lo pasé bien, y espero haber podido demostrar que, con un poco de memoria y práctica, podemos sacar un montón de partido a las potentes características de teclado de Visual Studio.
En realidad, al ser ciego, para mí el ratón es un elemento decorativo, de modo que las teclas rápidas son mi única manera de programar :). No obstante, y para mi fortuna, en este caso, no usar el ratón me supone una mejora, no lo contrario. Os aseguro que si os aprendéis los atajos más comunes, veréis cómo manejáis la herramienta mucho más rápido que si tenéis que estar quitando una mano, buscando los iconos con el ratón y volviendo a vuestro teclado.
En fin, que me voy por las ramas. Para que no me pase como siempre, me líe con otras cosas y al final no publique nada, aprovecho esta noche de domingo cuando nuestro peque duerme para hacer esta entrada en el blog, y poneros las teclas rápidas que expliqué en los dos eventos y que más utilizo en mi día a día con esta fenomenal herramienta que es Visual Studio.
¡Importante! Estos atajos vienen en el esquema “c#2005”. Si utilizáis otro esquema de teclado, todos estos atajos cambiarán. Podéis ver qué esquema está activo desde Tools > Options, pestaña “Keyboard”.
Los atajos están divididos en categorías para que os sea más fácil navegar por ellos.
En la columna de “Acción en VS”, he puesto el comando que ejecuta la acción indicada. Esto os servirá para encontrar dicho comando en las opciones de teclado de Visual Studio, y reasignar o añadir más teclas rápidas a los mismos si queréis.
Los atajos que contienen un asterisco (*), son aquellos que yo me he creado de manera personalizada. Para hacerlo vosotros, haced lo siguiente:
- id a las opciones de teclado de VS Studio (Tools / Options.
- Marcad la pestaña Keyboard.
- buscad el comando para el que queráis añadir la tecla (tenéis el nombre exacto en la columna Acción en VS). Podéis usar el cuadro de búsqueda para ello.
- Elegid en qué ventana queréis que ese comando funcione (marcad global si queréis que el atajo tenga efecto en todas las ventanas).
- Pulsad la combinación en el cuadro de asignación de atajo de teclado (podéis crear hasta dos combinaciones de teclas que tendréis que pulsar consecutivamente).
- Haced click en “Assign” y luego en “OK”.
A partir de ese momento, ya podréis hacer uso de ese atajo para ejecutar el comando.
Y ahora sí, vamos a por las teclas 🙂
¡Este código es un desastre!
¡Yo no he sido, esto ya estaba así cuando llegué!
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Ordenar y eliminar usings | ctrl+r, ctrl+g | ProjectandSolutionContextMenus.Project.PowerCommands.RemoveandSortUsings | Ordena los usings alfabéticamente y elimina los no necesarios |
Acciones rápidas | ctrl+. (punto) | View.QuickActions | Muestra el menú de opciones rápidas para el elemento actual |
Comentar selección | Ctrl+k, ctrl+c | Edit.CommentSelection | Comenta las líneas de código seleccionadas |
Descomentar selección | ctrl+k, ctrl+u | Edit.UncommentSelection | Descomenta las líneas seleccionadas |
Formatear documento | ctrl+e, d | Edit.FormatDocument | Formatea el documento abierto |
Renombrar elemento | f2 | EditorContextMenus.CodeWindow.Refactor.RefactorRename | Renombra un elemento, buscando sus referencias y renombrándolas también |
Mover selección línea arriba | alt+flecha arriba | Edit.MoveSelectedLinesUp | Mueve las líneas seleccionadas una línea hacia arriba |
Mover selección línea abajo | alt+flecha abajo | Edit.MoveSelectedLinesDown | Mueve las líneas seleccionadas una línea hacia abajo |
Borrar línea | ctrl+l (*) | Edit.LineDelete | Elimina la línea actual |
¿dónde estoy? ¿dónde estaba? ¡Estoy perdido!
Cuando mi lector de pantallas me lee código, lo hace línea a línea, carácter a carácter o palabra a palabra. Yo no tengo una visión global de una ventana de código. Es por ello que, al menos para mí, es súper importante ser capaz de hacerme una idea global de dónde estoy, y sobre todo, ser capaz de moverme por los distintos elementos del código de forma rápida y no perderme nunca.
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Ir a inicio o fin de bloque | ctrl+ + (más) (*) | Edit.GotoBrace | Va al principio o fin del bloque actual |
Método anterior | ctrl+e,flecha arriba | Edit.PreviousMethod | Va al método anterior |
Método siguiente | ctrl+e,flecha abajo | Edit.NextMethod | Va al siguiente método |
Crear marca | ctrl+b, t | Edit.ToggleBookmark | Crea o elimina una marca en el punto seleccionado |
Siguiente marca | ctrl+b,n | Edit.NextBookmark | Va a la siguiente marca |
Marca anterior | ctrl+b,p | Edit.PreviousBookmark | Va a la marca anterior |
Borrar todas las marcas | ctrl+b,ctrl+c | Edit.ClearBookmarks | Elimina todas las marcas |
Colapsar / expandir bloques | ctrl+m, m | Edit.ToggleOutliningExpansion | Colapsa o expande el bloque actual |
Volver el cursor atrás | ctrl+- (guión) | View.NavigateBackward | Mueve el cursor a la posición anterior |
Depurando ando
La depuración en Visual Studio es una de las cosas que más me gustan de esta herramienta. Y cómo no, tiene sus atajos para hacerlo aún más rápido.
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Añadir breakpoint | f9 | Debug.ToggleBreakpoint | Coloca o elimina un breakpoint bajo el cursor |
Quitar todos los breakpoints | ctrl+shift+f9 | Debug.DeleteAllBreakpoints | Quita todos los breakpoints de la solución. |
Lista de breakpoints | ctrl+d,b | Debug.Breakpoints | Muestra la ventana con la lista de los breakpoints de la solución |
Breakpoint condicional | alt+f9,c | EditorContextMenus.CodeWindow.Breakpoint.BreakpointConditions | Muestra la ventana para añadir condiciones a un breakpoint |
Siguiente paso | f10 | Debug.StepOver | Depura la siguiente instrucción de código |
Depurar método | f11 | Debug.StepInto | Depura el método seleccionado, entrando en él. |
Salir del método | shift+f11 | Debug.StepOut | Sale del método actual y continúa en el método padre |
Detener depuración | shift+f5 | Debug.StopDebugging | Detiene la sesión de depuración |
Ejecutar sin depurar | ctrl+f5 | Debug.StartWithoutDebugging | Ejecuta el proyecto de inicio sin depurar |
Ventana de locales | ctrl+d,l | Debug.Locals | |
Quick watch | ctrl+d,q | Debug.QuickWatch | Añade un "quick watch" de la instrucción seleccionada” |
Ejecutar hasta el cursor | ctrl+f10 | Debug.RunToCursor | Ejecuta la aplicación hasta el punto en el que tengamos situado el cursor |
Dónde está mi código, matarile rile rile…
En proyectos grandes, es muy difícil recordar dónde están todas las cosas
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Encontrar de todo en toda la solución | ctrl+t | Edit.GoToAll | Busca en toda la solución: miembros, tipos, ficheros… |
Ir a la línea | ctrl+g | Edit.GoTo | Va a la línea que deseemos dentro del archivo actual |
Buscar | ctrl+f | Edit.Find | Busca cualquier texto en el bloque actual, documento actual, documentos abiertos, proyecto o solución |
Reemplazar | ctrl+h | Edit.Replace | Reemplaza un texto por otro en el bloque actual, documento actual, documentos abiertos, proyecto o solución,. |
Buscar en archivos | ctrl+shift+f | Edit.FindinFiles | Busca en el bloque actual, documento actual, documentos abiertos, proyecto o solución. También permite buscar en un conjunto de carpetas que no tiene porqué estar dentro de nuestros proyectos. |
Reemplazar en archivos | ctrl+shift+h | Edit.ReplaceinFiles | Busca en el bloque actual, documento actual, documentos abiertos, proyecto o solución. También permite buscar en un conjunto de carpetas que no tiene porqué estar dentro de nuestros proyectos. |
Ir a la definición | f12 | Edit.GoToDefinition | Va a la definición de un miembro |
Ir a la declaración | ctrl+f12 | Edit.GoToDeclaration | Navega a la declaración del miembro seleccionado. Si se trata de una interfaz, mostrará una ventana con su/s implementación/es. |
Buscar todas las referencias | ctrl+k, r | Edit.FindAllReferences | Encuentra todas las referencias de un miembro |
Movernos entre ventanas y pestañas
En nuestro día a día, podemos llegar a acumular gran cantidad de ventanas abiertas en VS Stdio casi sin darnos cuenta. ¿Cómo movernos entre ellas sin tener que levantar las manos del teclado?
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Movernos al siguiente documento | ctrl+tab | Window.NextDocumentWindowNav | Navegamos al siguiente documento abierto |
Movernos al documento anterior | ctrl+shift+tab | Window.PreviousDocumentWindowNav | Navegamos al anterior documento abierto |
Movernos a la siguiente pestaña | ctrl+avpag | Window.NextTab | Movernos entre las pestañas de una ventana de propiedades, por ejemplo, propiedades de un proyecto. |
Ir a la ventana de output | ctrl+w, o | View.Output | Nos movemos a la ventana de output. |
Navegar a la lista de errores | ctrl+w, e | View.ErrorList | Nos movemos a la lista de errores |
Navegar al explorador de solución | ctrl+w, s | View.SolutionExplorer | Nos movemos al explorador de solución. |
Navegar a la lista de tareas | ctrl+w, ctrl+w | View.TaskList | Nos movemos a la lista de tareas |
Navegar al Team explorer | ctrl+º (ord masc) | View.TfsTeamExplorer | Nos movemos al “team explorer”. |
Propiedades del ítem seleccionado | alt +enter | (no encontrada) | Nos movemos a la ventana de propiedades del ítem seleccionado |
Los tests, los últimos de la cola
Si tenemos tiempo, si sobran horas, si los astros se alinean… ¡haremos algo de testing! 😛
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Ejecutar todos los tests | ctrl+r, a | TestExplorer.RunAllTests | Ejecuta todos los tests descubiertos por el motor de testing |
Depurar todos los tests | ctrl+r,ctrl+a | TestExplorer.DebugAllTests | Depura todos los tests descubiertos por el motor de testing |
Ejecutar los tests seleccionados | ctrl+r, t | TestExplorer.RunAllTestsInContext | Ejecuta los tests seleccionados |
Depurar los tests seleccionados | ctrl+r, ctrl + t | TestExplorer.DebugAllTestsInContext | Depura todos los tests seleccionados. |
Otros comandos útiles
Acción | Atajo | Acción en VS | Descripción |
---|---|---|---|
Compilar la solución | f6 | Build.BuildSolution | Compila la solución completa. |
Compilar proyecto seleccionado | shift+f6 | Build.BuildSelection | Compila el proyecto seleccionado |
Guardar documento actual | ctrl+s | File.SaveSelectedItems | Guarda el documento abierto |
Guardar todos los documentos abiertos | ctrl+shift+s | File.SaveAll | Guarda todos los documentos abiertos. |
Cerrar el documento actual | ctrl+f4 | Window.CloseDocumentWindow | Cierra el documento actualmente abierto |
Y vosotros, ¿qué otros atajos utilizáis en vuestro día a día? ¡Dejadlos en los comentarios y los añado aquí, que seguro que se me han pasado unos pocos!
¡Espero que estos atajos os sean útiles… Y recordad, VS Studio 2017 tiene actualmente 3889 comandos asignables a teclado. ¡Aprovechadlo! 🙂
¡Hasta la próxima!
Entrada visitada 1227 veces