順番に終わるのを待ちながら実行

sh で複数のファイルを順番に開いてまわりたかった。

find . -type f | while read f; do
  vi ${f}
done

が、これだと vi が標準入力を奪ってしまうので、大変困ったことになる。
カレントバッファにすべてファイルの内容が入ってしまう。

他にやりようが思いつかなかったので、そのときは苦肉の策で対処。

find . -type f | while read f; do
  sh -c "vi ${f} <&-"
done

サブシェル起動して、標準入力をつぶしてみた。
vi を止めるたびに次の vi が起動します。
終了後になんかターミナルがおかしくなったけどあまり気にしないことにする。