Esto debería funcionar:
find . -name "*.txt" -exec vim {} +
Usa Vim, es mejor para tu salud. :-)
La +
opción que a menudo se pasa por alto -exec
hace que todos los nombres de archivo (hasta los límites de longitud de línea) aparezcan en una línea, es decir, todavía se abren todos los archivos en una vim
sesión (se navega con el archivo :n
siguiente y el :N
anterior).
Con vim -p
usted obtendrá una pestaña de archivo para cada archivo. Consulte :help tab-page-commands
para más detalles.
Con vim -o
usted obtendrá ventanas divididas horizontalmente para cada archivo, vim -O
ventanas divididas verticalmente. Consulte :help window-move-cursor
para más detalles.
Tenga en cuenta que la versión anterior de esta respuesta, vim $(find . -name "*.txt")
no funciona con espacios en los nombres de archivo y tiene implicaciones de seguridad.
Tubería en xargs vi
da un Warning: Input is not from a terminal
, además de un terminal con un comportamiento completamente falso después. La gravedad del usuario explicó por qué en un comentario a continuación, y con un poco más de explicación en esta pregunta .