(Theo lời giải thích của grawity, điều đó xargschỉ stdinra /dev/null.)
Các giải pháp cho vấn đề này là thêm -otham số để xargs. Từ man xargs:
-o
Mở lại stdin như /dev/ttytrong tiến trình con trước khi thực hiện lệnh. Điều này rất hữu ích nếu bạn muốn xargschạy một ứng dụng tương tác.
Do đó, dòng mã sau sẽ phù hợp với bạn:
tìm thấy . -name "* .txt" | xargs -o vim
GNU xargs hỗ trợ phần mở rộng này kể từ một số bản phát hành năm 2017 (với tên tùy chọn dài --open-tty).
Đối với các phiên bản cũ hơn hoặc các phiên bản khác của xargs, bạn có thể chuyển vào rõ ràng /dev/ttyđể giải quyết vấn đề:
find . -name "*.txt" | xargs bash -c '</dev/tty vim "$@"' ignoreme
(Có ignoremeở đó để chiếm $ 0, do đó $ @ là tất cả các đối số từ xargs.)
findhoặc hoàn toàn không sử dụngxargs. Mở vim không có đối số, sau đó chạy:args **/*.txt<CR>để đặt đối số của vim từ bên trong trình chỉnh sửa.