Pregunta

Para ilustrar, a continuación se explica cómo hacerlo desde la línea de comandos:

vim `grep "hello" * -Rl`

Esto abre vim con todos los archivos que tienen "hola" en ellos (-l da solo los nombres de los archivos). Quiero hacer lo mismo, pero desde dentro vim. Conceptualmente, algo como esto (que no funciona):

:args !grep "hello" * -Rl

Estoy abierto a enfoques completamente diferentes para lograr esto; Simplemente me gustaría que estuviera en una línea (por lo que es fácil de editar y rehacer).


¡La respuesta es simplemente usar backticks - pero con una condición clave! Lo siguiente no funciona para mí, debido a las comillas alrededor de hola :

:args `grep "hello" * -Rl`

Pero funciona si los elimino o escapo de las comillas:

:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`

(esto quedó oculto en los comentarios después de la respuesta del caos: los agregué aquí para hacerlos más visibles, en caso de que alguien más tuviera este problema)

¿Fue útil?

Solución

Bueno, esto funciona para mí:

:args `grep -Rl "hello" *`

Ejecutando vim 7.0.305.

Otros consejos

Pruebe el comando args :

:ar[gs] `grep -Rl "hello" .`

Si los backticks no funcionan para usted, ¿está usando una versión actual de vim?

:version
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top