Risposte:
Con zsh:
vim ./**/*(.)
Altre conchiglie:
find . \( -name '.?*' -prune \) -o -type f -exec vim {} +
Per aprire solo i file regolari (non nascosti) (non directory, collegamenti simbolici, pipe, dispositivi, porte, socket ...).
vim ./**/*(D-.)
Altre shell, GNU find:
find . -xtype f -exec vim {} +
Per aprire anche file nascosti (e attraversare directory nascoste) e collegamenti simbolici a file normali.
E:
vim ./***/*(D-.)
altre conchiglie:
find -L . -type f -exec vim {} +
per attraversare anche i collegamenti simbolici quando si esaminano le sottodirectory.
Se si desidera un solo livello di sottodirectory:
vim ./* ./*/*
Nota che è una buona abitudine aggiungere il prefisso ai tuoi globs ./nel caso in cui alcuni nomi di file inizino con -o +.
(ovviamente findfunzionano anche quelli zsh. Nota che potrebbero eseguire diverse istanze vimse l'elenco dei file è grande).
In bash con shopt -s extglob:
for file in **/**; do [[ -f "$file" ]] && vim "$file"; done
Si noti che, secondo il commento di Stéphane , prima di Bash 4.3 questo avrebbe seguito qualsiasi collegamento simbolico nelle directory coperte.
vimper file. Nota che bash prima della 4.3 era utilizzato per attraversare i symlink**. È stato risolto in 4.3.