Saltar a contenido

Búsqueda

Dos maneras de encontrar cosas más allá del archivo actual, con una regla compartida: el ámbito es una ruta visible y editable. Ambos paneles muestran exactamente dónde miran — el proyecto del documento actual por defecto — y ampliar la búsqueda es literalmente editar esa ruta (hasta ~ o / si se quiere). La búsqueda nunca mira en silencio donde no se espera.

Ambos recorridos respetan .gitignore, omiten archivos ocultos y limitan el tamaño de archivo, cortesía del motor del propio ripgrep incrustado en el núcleo — no un subproceso.

Abrir rápidamente (⌘T)

Escriba fragmentos del nombre de archivo — editwc encuentra EditorWindowController.swift — con coincidencia difusa y ranking al estilo fzf. ↑/↓ mueven la selección, ⏎ abre (trayendo al frente la ventana si el archivo ya está abierto), ⎋ cierra. Una consulta vacía lista el ámbito alfabéticamente. Los mismos filtros apilados de Buscar en el proyecto aplican aquí — cada tipo de filtro refina las rutas encontradas — y la línea de estado dice cuántas coincidencias podaron los filtros.

⏎ busca, ⌘⏎ abre (Ctrl+⏎ en Linux): refinar una consulta nunca debería abrir un archivo por accidente. ↑/↓ mueven la selección, ⎋ cierra, y el doble clic también abre. La línea de estado lo explica.

El ámbito se recorre una vez al abrir el panel y luego se filtra en memoria — escribir es instantáneo en un repositorio real, y el número de archivos en la línea de estado dice qué se está buscando.

Buscar en el proyecto (⇧⌘F)

La consulta es una expresión regular; los resultados llegan como ruta:línea: texto. ⏎ salta directamente a la línea coincidente. Los resultados tienen tope (200) para seguir siendo instantáneos; refine el patrón en lugar de desplazarse.

Las mayúsculas siguen la regla smart case que popularizó ripgrep: una consulta toda en minúsculas coincide con cualquier caja, mientras que una consulta con alguna mayúscula se busca tal cual. Así todo encuentra TODO, y TODO solo encuentra TODO.

Una línea bajo los resultados dice qué hizo la búsqueda — «18 matches in 4 files · 812 searched», «No matches in 812 files searched» o el motivo de que no se pudiera buscar nada (un ámbito inexistente, uno donde todo está ignorado o un patrón inválido, citado). Un resultado vacío nunca es mudo: un patrón mal escrito o un ámbito equivocado se anuncian en vez de parecer una ausencia de coincidencias.

Filtros apilados

Bajo la consulta de Buscar en el proyecto, + Add Filter apila refinamientos:

  • line contains / line excludes — el texto de la línea coincidente;
  • file contains / file excludes — la ruta del archivo del resultado.

Los filtros son subcadenas sin distinción de mayúsculas y se combinan con y: líneas con foo donde también aparece bar, pero no en archivos con test en el nombre, es la consulta foo más line contains bar más file excludes test. Las exclusiones de archivo podan archivos enteros antes siquiera de abrirlos, así que las búsquedas filtradas siguen siendo tan rápidas como las simples.

La palabra seleccionada

Seleccionar una palabra entera marca los demás lugares donde aparece en el texto visible — un tinte gris, distinto de la selección y de las coincidencias de la barra de búsqueda, para que los tres se distingan. Seleccionar parte de una palabra, o un tramo que abarca varias, no marca nada: esas selecciones se hicieron por otro motivo.

⎋ guarda las marcas y deja la selección, así la palabra sigue ahí para actuar sobre ella. Editar o seleccionar en otro sitio vuelve a hacer la pregunta. La búsqueda cubre lo que está en pantalla, que es donde una marca se puede ver, así que un archivo largo cuesta lo que uno corto.

Dos ajustes en Ajustes ▸ Editor deciden qué cuenta: si Item es item, y si item dentro de items lo es. Ambos vienen apagados — un nombre que difiere en mayúsculas es otro nombre, y la palabra se seleccionó como palabra.

La pila de saltos

Cada salto — un resultado de búsqueda, Ir a la Definición, una referencia, una entrada del esquema, un chum — recuerda de dónde partió. Go Back (⌃⌘←) recorre esos orígenes; Go Forward (⌃⌘→) los desanda. La historia se reescribe desde el punto actual: saltar a un sitio nuevo descarta el rastro hacia adelante, exactamente como la jumplist de vim. Las posiciones sobreviven a las ediciones como línea/columna, así que volver tras un cambio aterriza cerca, no perdido.

Aún no está

  • Reemplazar entre archivos.
  • Conmutadores de mayúsculas/palabra completa en el panel (el propio patrón puede expresar ambos).
  • Historial de búsquedas persistente.