Ini harus melakukan trik:
find . -name "*.txt" -exec vim {} +
Gunakan Vim, lebih baik untuk kesehatan Anda. :-)
Opsi yang sering diabaikan +
untuk -exec
membuat semua nama file (hingga batas panjang garis) muncul dalam satu baris, yaitu Anda masih mendapatkan semua file dibuka dalam satu vim
sesi (navigasikan dengan :n
untuk :N
file berikutnya dan sebelumnya).
Dengan vim -p
Anda mendapatkan tab file untuk setiap file. Periksa :help tab-page-commands
lebih detail.
Dengan vim -o
Anda akan mendapatkan windows split secara horizontal untuk setiap file, vim -O
secara vertikal membagi windows. Periksa :help window-move-cursor
lebih detail.
Perhatikan bahwa versi sebelumnya dari jawaban ini vim $(find . -name "*.txt")
,, tidak berfungsi dengan spasi di nama file, dan memiliki implikasi keamanan.
Perpipaan menjadi xargs vi
memberi Warning: Input is not from a terminal
, plus terminal dengan perilaku benar-benar palsu sesudahnya. Grawity pengguna menjelaskan alasannya di komentar di bawah ini, dan dengan sedikit penjelasan lebih lanjut dalam pertanyaan ini .