(Menyusul dari penjelasan grawity, itu xargs
menunjuk stdin
ke /dev/null
.)
The solusi untuk masalah ini adalah dengan menambahkan -o
parameter ke xargs
. Dari man xargs
:
-o
Buka kembali stdin seperti /dev/tty
pada proses anak sebelum menjalankan perintah. Ini berguna jika Anda ingin xargs
menjalankan aplikasi interaktif.
Dengan demikian, baris kode berikut dapat digunakan untuk Anda:
Temukan . -nama "* .txt" | xargs -o vim
GNU xargs mendukung ekstensi ini sejak beberapa rilis pada 2017 (dengan nama opsi panjang --open-tty
).
Untuk versi xarg yang lebih lama atau yang lain, Anda dapat secara eksplisit masuk /dev/tty
untuk menyelesaikan masalah:
find . -name "*.txt" | xargs bash -c '</dev/tty vim "$@"' ignoreme
(Yang ignoreme
ada untuk mengambil $ 0, sehingga $ @ adalah semua argumen dari xargs.)
find
atau tidakxargs
sama sekali. Buka vim tanpa argumen, lalu jalankan:args **/*.txt<CR>
untuk mengatur argumen vim dari dalam editor.