Keine der oben genannten Antworten hat bei mir funktioniert (tmux v2.3), aber dies geschah über die Bash-Befehlszeile:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
Ein allgemeineres Skript für andere tmux-Befehle als 'clear-history' würde dieses Element nur durch einen Parameter ersetzen, z. $ 1. Seien Sie vorsichtig, wenn Sie beabsichtigen, ein Skript für eine Reihe von tmux-Befehlen zu schreiben, da auf jedes "-t $ {_ pane}" angewendet werden muss.
Beachten Sie, dass der -a
Parameter to tmux list-panes
erforderlich ist, um alle Bereiche in allen Fenstern in allen Sitzungen abzudecken. Ohne dies sind nur Fenster in Ihrem aktuellen tmux-Fenster betroffen. Wenn Sie mehr als eine tmux Sitzung geöffnet haben und wollen nur den Befehl Scheiben in der aktuellen Sitzung anwenden, ersetzen -a
mit -s
(Es ist alles in der tmux Manpage).
Ich habe nicht die Mod-Punkte, um jede der oben genannten Antworten direkt zu kommentieren. Deshalb haben sie hier nicht für mich funktioniert:
Das Problem, das ich mit der Antwort von @ shailesh-garg hatte, war, dass die Synchronisierung nur Befehle betraf, die innerhalb der Fenster ausgegeben wurden, nicht tmux-Befehle, die mit Ctrl-B :
außerhalb der Fenster ausgegeben wurden .
Die drei Probleme, die ich mit @kshenoys Antwort hatte, waren folgende:
- Es sendet Tastenanschläge innerhalb eines Bereichs, nicht an die tmux-Operation dieses Bereichs. Wenn beispielsweise eine Bash-Shell im Bereich ausgeführt wird und das Skript zum Senden von "Clear-History" verwendet wird, sind dies die Tastenanschläge würde in der Bash-Befehlszeile erscheinen. Eine Problemumgehung wäre, "tmux clear-history" zu senden oder "tmux" an "$ @" anzuhängen, aber ich habe die Antwort aufgrund meiner anderen Probleme mit der Antwort nicht bearbeitet.
- Ich konnte nicht herausfinden, wie man ein neues Zeilenzeichen sendet, ohne die Zeile buchstäblich zu unterbrechen.
- Selbst wenn ich das tat, hatte das Senden von "tmux clear-history" keine Auswirkung.