com zsh :
vim ./**/*(.)
Outras conchas:
find . \( -name '.?*' -prune \) -o -type f -exec vim {} +
Para abrir apenas os arquivos (não ocultos) regulares (não diretórios, links simbólicos, canais, dispositivos, portas, sockets ...).
vim ./**/*(D-.)
Outras camadas, 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 percorre links simbólicos ao procurar subdiretórios.
Se você quiser apenas um nível de subdiretórios:
vim ./* ./*/*
Observe que é um bom hábito prefixar seus globs com ./ caso alguns nomes de arquivos comecem com - ou + .
(é claro que os find também funcionam em zsh . Note que eles podem executar várias instâncias de vim se a lista de arquivos for grande).