JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

TRUCO: Búsqueda rápida de archivos en Visual Studio

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!

José Manuel Alarcón José Manuel Alarcón
Fundador y director de campusMVP.es, el proyecto de referencia en formación on-line para programadores en lengua española. Autor de varios libros y cientos de artículos. Galardonado como MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.
Mi último libro (no técnico): "Tres Monos, Diez Minutos".
Banner

Comentarios (3) -

Colombia Mauricio Montoya Medrano

Muchas gracias por este apunte, muy útil.

Responder

Un truco muy util sobre una herramienta que desconocía y que es una maravilla.
Utilizandola he descubierto un uso interesante que no nombras en el articulo y que quiero compartir para quien le pueda ser útil:

Si tienes un texto seleccionado y pulsas sobre 'ctrl+,' te buscará resultados sobre ese texto. Y te previsualizará el archivo con al primer resultado coincidente.
Esto es muy util si lo que seleccionas es un nombre de fichero. Yo por ejemplo, cuando programo en web, suelo tener muchos archivos externos CSS y Javascript y normalmente cada recurso suelte tener un nombre excluyente. Si seleccionas el nombre del fichero completo en la página html y pulsas sobre la combinación mágica... tachán! Has navegado directamente al recurso que tenías en el archivo html!!

Responder

Sí, en VS cuando buscas algo sierpe, por defecto, te coge lo que tengas seleccionado en el código.

El uso que comentas para HTML/CSS/JS está muy bien.

Gracias por el apunte!

Responder

Agregar comentario