Ini seharusnya berhasil:
find . -name "*.txt" -exec vim {} +
Gunakan Vim, itu lebih baik untuk kesehatan Anda. :-)
+
yang sering diabaikan pilihan untuk -exec
membuat semua nama file (hingga batas panjang baris) muncul dalam satu baris, yaitu Anda masih dapat membuka semua file dalam satu vim
sesi (navigasi dengan :n
untuk selanjutnya dan :N
untuk file sebelumnya).
Dengan vim -p
Anda mendapatkan tab file untuk setiap file. Periksa :help tab-page-commands
untuk detail lebih lanjut.
Dengan vim -o
Anda akan mendapatkan jendela yang dibagi secara horizontal untuk setiap file, vim -O
jendela yang terbelah secara vertikal. Periksa :help window-move-cursor
untuk lebih jelasnya.
Perhatikan bahwa versi sebelumnya dari jawaban ini, vim $(find . -name "*.txt")
, tidak berfungsi dengan spasi pada nama file, dan memiliki implikasi keamanan.
Menyalin ke xargs vi
memberikan Warning: Input is not from a terminal
, ditambah terminal dengan perilaku palsu setelahnya. Grawity pengguna menjelaskan alasannya dalam komentar di bawah, dan dengan sedikit penjelasan lagi dalam pertanyaan ini.
Atau jalankan vim dan dari sana:
:args **/*.txt