Isso deve funcionar:
find . -name "*.txt" -exec vim {} +
Use Vim, é melhor para sua saúde. : -)
A opção + frequentemente ignorada para -exec faz com que todos os nomes dos arquivos (até os limites de tamanho da linha) apareçam em uma linha, ou seja, você ainda obtém todos os arquivos abertos em um vim session (navegada com :n para o próximo e :N para o arquivo anterior).
Com vim -p você obtém uma guia de arquivo para cada arquivo. Verifique :help tab-page-commands para mais detalhes.
Com vim -o , você obterá janelas divididas horizontalmente para cada arquivo, vim -O dividir verticalmente as janelas. Verifique :help window-move-cursor para mais detalhes.
Observe que a versão anterior dessa resposta, vim $(find . -name "*.txt") , não funciona com espaços em nomes de arquivos e tem implicações de segurança.
Pipar para xargs vi dá um Warning: Input is not from a terminal , mais um terminal com comportamento completamente falso depois. Grawity do usuário explicou porque em um comentário abaixo, e com um pouco mais de explicação em esta questão .