Questo dovrebbe risolvere il problema:
find . -name "*.txt" -exec vim {} +
Usa Vim, è meglio per la tua salute. :-)
Il spesso trascurato + opzione a -exec fa apparire tutti i nomi di file (fino ai limiti di lunghezza della riga) in una riga, ovvero tutti i file vengono aperti in uno vim sessione (navigato con :n per il prossimo e :N per il file precedente).
Con vim -p ottieni una scheda file per ogni file. Seleziona :help tab-page-commands per maggiori dettagli.
Con vim -o otterrai finestre divise orizzontalmente per ogni file, vim -O finestre divise verticalmente. Seleziona :help window-move-cursor per ulteriori dettagli.
Nota che la versione precedente di questa risposta, vim $(find . -name "*.txt") , non funziona con gli spazi nei nomi dei file e ha implicazioni sulla sicurezza.
Piping in xargs vi dà un Warning: Input is not from a terminal , oltre a un terminale con un comportamento completamente fasullo in seguito. L'utente grawity ha spiegato perché in un commento qui sotto e con qualche spiegazione in più in questa domanda.
Oppure esegui vim e da lì:
:args **/*.txt