Respostas:
Com zsh:
vim ./**/*(.)
Outras conchas:
find . \( -name '.?*' -prune \) -o -type f -exec vim {} +
Para abrir apenas os arquivos regulares (não ocultos) (não diretórios, links simbólicos, tubos, dispositivos, portas, soquetes ...).
vim ./**/*(D-.)
Outras conchas, GNU find:
find . -xtype f -exec vim {} +
Para também abrir arquivos ocultos (e percorrer diretórios ocultos) e links simbólicos para arquivos regulares.
E:
vim ./***/*(D-.)
outras conchas:
find -L . -type f -exec vim {} +
também percorrer links simbólicos ao procurar em subdiretórios.
Se você deseja apenas um nível de subdiretórios:
vim ./* ./*/*
Observe que é um bom hábito prefixar seus globs ./caso alguns nomes de arquivos comecem com -ou +.
(é claro que findeles também funcionam zsh. Observe que eles podem executar várias instâncias vimse a lista de arquivos for grande).
Na festança com shopt -s extglob:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
Observe que, conforme o comentário de Stéphane , antes do Bash 4.3, isso seguiria quaisquer links simbólicos nos diretórios abordados.
vimpor arquivo. Observe que o bash anterior ao 4.3 costumava atravessar links simbólicos com**. Foi corrigido no 4.3.