คำตอบข้างต้นไม่เหมาะกับฉัน (tmux v2.3) แต่สิ่งนี้ทำได้จากบรรทัดคำสั่ง bash:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
สคริปต์ที่ถูกทำให้เป็นมาตรฐานมากขึ้นสำหรับคำสั่ง tmux นอกเหนือจาก 'clear-history' จะแทนที่องค์ประกอบนั้นด้วยพารามิเตอร์เช่น $ 1 ระวังหากคุณต้องการเขียนสคริปต์เพื่อจัดการชุดคำสั่ง tmux เนื่องจาก "-t $ {_ pane}" จะต้องใช้กับแต่ละรายการ
โปรดทราบว่าจำเป็นต้องใช้-a
พารามิเตอร์เพื่อtmux list-panes
ครอบคลุมบานหน้าต่างทั้งหมดในหน้าต่างทั้งหมดในทุกเซสชัน หากไม่มีสิ่งนั้นบานหน้าต่างในหน้าต่าง tmux ปัจจุบันของคุณเท่านั้นที่จะได้รับผลกระทบ หากคุณเปิดเซสชัน tmux มากกว่าหนึ่งเซสชันและต้องการใช้คำสั่งกับบานหน้าต่างภายในเซสชันปัจจุบันเท่านั้นให้แทนที่-a
ด้วย-s
(ทั้งหมดอยู่ในหน้า man ของ tmux)
ฉันไม่ได้ให้คะแนน mod เพื่อแสดงความคิดเห็นโดยตรงกับคำตอบแต่ละข้อข้างต้นดังนั้นนี่คือเหตุผลที่พวกเขาไม่ได้ทำงานให้ฉัน:
ปัญหาที่ฉันมีกับคำตอบของ @ shailesh-garg คือการซิงค์ส่งผลกระทบเฉพาะคำสั่งที่ออกภายในบานหน้าต่างไม่ใช่คำสั่ง tmux ที่ใช้Ctrl-B :
ซึ่งอยู่นอกบานหน้าต่าง
ปัญหาสามข้อที่ฉันมีกับคำตอบของ @kshenoy คือ:
- มันส่งการกดแป้นไปที่ภายในบานหน้าต่างไม่ใช่ไปยังการดำเนินการ tmux ของบานหน้าต่างนั้นตัวอย่างเช่นหากมีเปลือกทุบตีที่ทำงานในบานหน้าต่างและหนึ่งใช้สคริปต์เพื่อส่ง จะปรากฏในบรรทัดคำสั่ง bash วิธีแก้ไขคือส่ง "tmux clear-history" หรือ pre-pend "tmux" เป็น "$ @" แต่ฉันไม่ได้แก้ไขคำตอบเพราะปัญหาอื่น ๆ ของฉันกับคำตอบ;
- ฉันไม่สามารถหาวิธีส่งอักขระขึ้นบรรทัดใหม่ได้โดยไม่ทำลายเส้น
- แม้ว่าฉันจะทำอย่างนั้นการส่ง "tmux clear-history" ก็ไม่มีผล