¿Cómo se realiza una búsqueda incremental en varios archivos de texto en VIM?

¿Cómo se realiza una búsqueda incremental en varios archivos de texto en VIM?

¿Hay alguna manera de que VIM realice búsquedas incrementales en archivos de texto?

Vim ya realiza una búsqueda incremental dentro del archivo abierto actualmente.

Ejemplos de programas que demuestran el tipo de búsqueda que intento realizar son Velocidad notacionalpara MacOS,Resoppara ventanas oNota simplepara la web.

Estas aplicaciones realizan una búsqueda instantánea o incremental en los archivos de un directorio específico y hacen que sea fácil y rápido delimitar el archivo que está buscando o crear un archivo nuevo.
Utilizo ambos, pero prefiero vivir en un editor (es VIM).

¿Hay algún enchufe que pueda hacer esto?

Respuesta1

Podrías usar el vimgrepcomando, por ejemplo:

:vimgrep /searchword/ ~/**

Ver

:help vimgrep

para detalles.

Respuesta2

Aún no. Para obtener un buen rendimiento de búsqueda incremental probablemente sería necesario que alguien escriba un complemento en C que cargue archivos en una gran estructura de datos optimizada. Puede haber una manera de hackear vim para ejecutar grep en toda la base de datos cada vez que presionas una tecla, pero probablemente no sería lo suficientemente rápido.

Para ver un ejemplo de un complemento vim de código abierto que realiza búsquedas incrementales (desafortunadamente en nombres de archivos, no en contenidos de archivos), puede consultar el complemento comando-t:

https://wincent.com/products/command-t

Otra limitación técnica con la que uno podría encontrarse si intenta cargar una base de datos completa de notas en los buffers de vim es que cada usuario está limitado de forma predeterminada a 1024 archivos abiertos simultáneamente, y muchas bases de datos de notas contienen más notas que eso. El límite se puede eliminar con bastante facilidad, pero los usuarios no deberían tener que lidiar con esas cosas.

Respuesta3

Hay un buen complemento que hace exactamente eso pero con buffers:Explorador lujurioso.

También hay otros complementos que hacen casi eso con los archivos:fácilgrepyAckpero tampoco la búsqueda incremental.

El primero (y otros, y NV o Resoph Notes) puede realizar búsquedas incrementales porque todos los archivos están en la memoria y funcionan como una especie de base de datos. Parece un poco más difícil de implementar en archivos aleatorios.

Realmente me gustaría ver esa funcionalidad en Vim porque me acabo de mudar a Linux a tiempo completo y, que yo sepa, no existe ningún reemplazo de Notational Velocity. NV fue una parte central de mi flujo de trabajo en Mac OS X y en realidad es la única pieza que falta en este momento. La explicación que hace Drew Wagner del problema y la propuesta de solución parecen interesantes.

información relacionada