Cái này cần phải dùng mẹo:
find . -name "*.txt" -exec vim {} +
Sử dụng Vim, nó tốt hơn cho sức khỏe của bạn. :-)
+
Tùy chọn bỏ qua để -exec
làm cho tất cả tên tệp (giới hạn độ dài tối đa của dòng) xuất hiện trong một dòng, tức là bạn vẫn nhận được tất cả các tệp được mở trong một vim
phiên (được điều hướng cho tệp :n
tiếp theo và :N
cho tệp trước đó).
Với vim -p
bạn có được một tab tập tin cho mỗi tập tin. Kiểm tra :help tab-page-commands
để biết thêm chi tiết.
Với vim -o
bạn sẽ có được các cửa sổ phân chia theo chiều ngang cho mỗi tệp, các vim -O
cửa sổ phân chia theo chiều dọc. Kiểm tra :help window-move-cursor
để biết thêm chi tiết.
Lưu ý rằng phiên bản trước của câu trả lời này vim $(find . -name "*.txt")
, không hoạt động với khoảng trắng trong tên tệp và có ý nghĩa bảo mật.
Đường ống vào xargs vi
cho một Warning: Input is not from a terminal
, cộng với một thiết bị đầu cuối với hành vi hoàn toàn không có thật sau đó. Sự khéo léo của người dùng đã giải thích lý do tại sao trong một bình luận dưới đây, và với một chút giải thích hơn trong câu hỏi này .