Không có câu trả lời nào ở trên làm việc cho tôi (tmux v2.3), nhưng điều này đã làm, từ dòng lệnh bash:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
Một tập lệnh tổng quát hơn, đối với các lệnh tmux ngoài 'lịch sử rõ ràng' sẽ chỉ thay thế phần tử đó bằng một tham số, ví dụ: $ 1. Hãy cẩn thận nếu bạn có ý định viết một tập lệnh để xử lý một loạt các lệnh tmux, vì "-t $ {_ pane}" sẽ cần phải được áp dụng cho mỗi tập lệnh.
Lưu ý rằng -a
tham số tmux list-panes
được yêu cầu để bao gồm tất cả các ô trong tất cả các cửa sổ trong tất cả các phiên. Không có điều đó, chỉ các tấm trong cửa sổ tmux hiện tại của bạn sẽ bị ảnh hưởng. Nếu bạn có nhiều hơn một phiên tmux mở và chỉ muốn áp dụng lệnh cho các bảng trong phiên hiện tại, hãy thay thế -a
bằng -s
(Tất cả trong trang man của tmux).
Tôi không có điểm mod để nhận xét trực tiếp về từng câu trả lời ở trên, vì vậy đây là lý do tại sao họ không làm việc cho tôi:
Vấn đề mà tôi gặp phải với câu trả lời của @ shailesh-garg là việc đồng bộ hóa chỉ ảnh hưởng đến các lệnh được ban hành trong các bảng, chứ không phải các lệnh tmux được phát hành sử dụng Ctrl-B :
bên ngoài các bảng.
Ba vấn đề mà tôi gặp phải với câu trả lời của @kshenoy là:
- nó gửi tổ hợp phím đến trong một ngăn, không phải cho hoạt động tmux của ngăn đó, vì vậy, nếu một bash shell chạy trong khung và một sử dụng tập lệnh để gửi "lịch sử rõ ràng", thì đó sẽ là tổ hợp phím sẽ xuất hiện trong dòng lệnh bash. Một cách giải quyết sẽ là gửi "tmux Clear-history" hoặc trước "tmux" tới "$ @", nhưng tôi đã không chỉnh sửa câu trả lời vì những vấn đề khác của tôi với câu trả lời;
- Tôi không thể tìm ra cách gửi một nhân vật dòng mới mà không phá vỡ dòng đó theo nghĩa đen;
- Ngay cả khi tôi đã làm điều đó, việc gửi "lịch sử rõ ràng tmux" không có hiệu lực.