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 -exechace 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 :nsiguiente y el :Nanterior).
Con vim -pusted obtendrá una pestaña de archivo para cada archivo. Consulte :help tab-page-commandspara más detalles.
Con vim -ousted obtendrá ventanas divididas horizontalmente para cada archivo, vim -Oventanas divididas verticalmente. Consulte :help window-move-cursorpara 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 vida 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 .