
Utilizo un pequeño programa que escribí que toma un patrón de expresión regular como parámetro y busca más de 2000 archivos. Los archivos están en una jerarquía de directorios.
El patrón puede estar en varios archivos y varias veces en cualquier archivo. Después de encontrar los nombres de archivos y las líneas en las que ocurre el patrón, el programa solicita vi
el +line
número de la primera línea y todos los nombres de archivos que encontró.
Todo funciona ahora, pero en un momento intenté especificar +line
para cada archivo ( vi +2 x1 +5 x2
), pero eso coloca el cursor en la línea 5 x1
y en la línea 1 x2
, no es lo que quería, así que descarté esa idea.
Los patrones suelen ser complejos y no quiero escribirlos dos veces, por lo que ahora a veces uso copiar y pegar para buscar la siguiente línea en vi
. Lo que sería genial es configurar el vi
historial de búsqueda con el patrón, luego podría usar /+ ↑+ Return, sin volver a escribir ni copiar/pegar, para encontrar todos los patrones. Luego puedo usar :n!
para ir al siguiente archivo y continuar usando el patrón.
Parece que el patrón está almacenado .viminfo
en mi directorio. ¿Puedo simplemente actualizar ese archivo antes de comenzar vi
o hay alguna biblioteca o utilidad de línea de comandos para hacerlo?
Respuesta1
No es necesario parchear el ~/.viminfo
archivo.
Mientras lo usa, vim
puede usar la +/pattern
opción de línea de comando para colocar el cursor en la línea del patrón. Después de eso, puede usar npara llegar a las siguientes apariciones (si no está al comienzo de la línea, será la primera, de lo contrario, la segunda aparición).
La página de manual dice que el cursor estará en la primera aparición del patrón, pero en mi experiencia está en el primer carácter de la línea con ese patrón. De la vim
man
página:
+/{pat} For the first file the cursor will be positioned on the
first occurrence of {pat}. See ":help search-pattern" for
the available search patterns.