上記の答えはどれもうまくいきませんでした(tmux v2.3)が、bashコマンドラインからはうまくいきました。
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
'clear-history'以外のtmuxコマンド用のより一般化されたスクリプトは、その要素をパラメーターに置き換えるだけです。$ 1。"-t $ {_ pane}"をそれぞれに適用する必要があるため、一連のtmuxコマンドを処理するスクリプトを作成する場合は注意してください。
-a
パラメータto tmux list-panes
は、すべてのセッションのすべてのウィンドウのすべてのペインをカバーする必要があることに注意してください。これがないと、現在のtmuxウィンドウのペインだけが影響を受けます。複数のtmuxのセッションのオープンを持っているだけで、現在のセッション内のペインにコマンドを適用する場合は、交換する-a
と-s
(これはtmuxのmanページですべてです)。
上記の各回答に直接コメントするmodポイントはありません。そのため、これらが私のために機能しなかった理由は次のとおりです。
@ shailesh-gargの回答で私が抱えていた問題は、同期がペイン内で発行されたコマンドにのみ影響し、ペインのCtrl-B :
外側にあるを使用して発行されたtmuxコマンドには影響しなかったことです。
@kshenoyの回答で私が抱えていた3つの問題は、
- キーストロークをそのペインのtmux操作ではなく、ペイン内に送信します。たとえば、ペインでbashシェルを実行していて、スクリプトを使用して「clear-history」を送信した場合、これらはキーストロークになります。 bashコマンドラインに表示されます。回避策は、 "tmux clear-history"を送信するか、 "tmux"を "$ @"の前に付加することですが、回答に関する他の問題のため、私は回答を編集していません。
- 文字どおり改行しないと、改行文字を送信する方法を理解できませんでした。
- 私がそれをしたときでも、「tmux clear-history」を送信しても効果がありませんでした。