Este es un truco que, sorprendentemente, muchos programadores que usan Visual Studio a diario desconocen. Se trata de la posibilidad de buscar a toda velocidad cualquier elemento de nuestro código, incluyendo archivos, variables, funciones, clases...

La funcionalidad se denomina "Navigate to", y en las últimas versiones de Visual Studio se ha mejorado mucho, incluyendo VS2013.

Para activarla lo único que hay que hacer es pulsar la combinación de teclas "CTRL + ," (sí, la coma).

Esto abre una pequeña ventana adherida a la parte superior derecha del entorno, que tiene únicamente un cuadro de texto con el foco puesto, en el que podemos escribir:

Navigate-To-1

Lo que escribamos ahí se usa para localizar a toda velocidad cualquier elemento de nuestro proyecto que incluya esa palabra: archivos, rutas, clases, métodos, variables... y se nos van mostrando debajo con la primera seleccionada y su vista previa detrás (en la pestaña de vista previa):

Navigate-To-2

Si pulsamos las teclas del cursor para bajar o subir nos va mostrando la vista previa de cada elemento. si pulsamos ENTER nos deja directamente en el elemento que tengamos seleccionado. Podemos cancelar en cualquier momento con ESC o simplemente pulsando en cualquier lugar fuera de la lista de resultados.

La velocidad de búsqueda es enorme, y además realiza vista previa y ofrece opciones avanzadas para localizar cualquier cosa. No es lo mismo, pero se parece mucho a la opción "Goto Anything" de Sublime Text.

Opciones de búsqueda

Aparte de buscar únicamente simples cadenas, tenemos otras opciones de búsqueda más potentes.

Por ejemplo, si incluyes varias palabras o fragmentos separados por espacios, éstos actúan como si fueran operadores "AND", es decir, buscan cualquier elemento que tenga todos los fragmentos escritos a la vez, así:

Navigate-To-3

En este caso, por ejemplo, busca todos los elementos que tengan las cadenas "num" y "conv" al mismo tiempo. Es muy útil si no nos acordamos exactamente del nombre de un método o una clase pero sabemos que debería llevar ciertas palabras o fragmentos en su nombre. También si queremos restringir un poco los resultados generales que obteníamos con una sola palabra.

La búsqueda por defecto no distingue entre mayúsculas y minúsculas, por eso las búsquedas en los ejemplos anteriores nos devuelven esos resultados.

Sin embargo si utilizamos alguna letra mayúscula en el cuadro de texto lo que ocurre es que entonces sí que se considera que debe ser mayúscula. Es decir, metiendo mayúsculas conseguimos que se tengan en cuenta para la búsqueda, cosa que no pasa con las minúsculas. Por ejemplo, si busco en mi proyecto de ejemplo el fragmento de texto "ar" obtengo estos resultados, que incluyen mayúsculas y minúsculas como podemos ver:

Navigate-To-4

Sin embargo si ahora coloco la "A" en mayúsculas, ésta se considera únicamente así, y me restringe los resultados:

Navigate-To-5

Pero aún hay más... Si junto varias letras mayúsculas lo que hará la búsqueda es localizar cualquier elemento (incluyendo archivos o sus rutas, no lo olvidemos) que tenga las letras mayúsculas que le estoy indicando en algún punto de su nombre:

Navigate-To-6

¡Genial!

Aún hay más... En ocasiones querremos localizar exclusivamente nombres de clases, variables o métodos, pero que no nos incluya nombres de archivos ni rutas (que muchas veces se llaman como las clases, por ejemplo). Para ello debo utilizar la letra "@" precediendo cualquier cadena que escriba, así:

Navigate-To-7

Como vemos, en este caso encuentra solo símbolos del programa, pero no archivos ni rutas. También muy útil.

Finalmente, si pulsamos sobre la flechita que tiene a la derecha nos ofrece tres opciones de configuración para definir cómo queremos que trabaje:

Navigate-To-8

Las opciones son:

  • Search within external items: esta opción es para programadores de C++ y permite buscar en la carpeta de "Dependencias externas" del proyecto.
  • Use preview tab: si no queremos que se muestre la vista previa de los elementos al movernos por ellos, entonces desmarcaremos esta opción.
  • Show details: muestra información extra relativa a cada elemento encontrado, fundamentalmente su ruta completa y la línea en la que se encuentra en el caso de símbolos.

Una vez que conozcas esta opción y empieces a utilizarla, no podrás vivir sin ella.

¡Espero que te resulte útil!

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA