Nenhuma das respostas acima funcionou para mim (tmux v2.3), mas isso aconteceu na linha de comando do bash:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
Um script mais generalizado, para comandos tmux que não sejam 'clear-history', substituiria esse elemento apenas por um parâmetro, por exemplo. $ 1. Tenha cuidado se você pretende escrever um script para lidar com uma série de comandos tmux, pois "-t $ {_pane}" precisará ser aplicado a cada um.
Observe que o -a
parâmetro para tmux list-panes
é necessário para cobrir todos os painéis em todas as janelas em todas as sessões. Sem isso, apenas os painéis na janela atual do tmux serão afetados. Se você tiver mais de uma sessão do tmux aberta e quiser aplicar o comando apenas aos painéis da sessão atual, substitua -a
por -s
(Está tudo na página de manual do tmux).
Eu não tenho os pontos de modificação para comentar diretamente em cada uma das respostas acima, então aqui está o porquê eles não estavam trabalhando para mim:
O problema que tive com a resposta do @ shailesh-garg foi que a sincronização afetava apenas os comandos emitidos dentro dos painéis, não os comandos tmux emitidos usando os Ctrl-B :
que estão fora dos painéis.
Os três problemas que tive com a resposta de @kshenoy foram:
- ele envia pressionamentos de tecla para dentro de um painel, não para a operação tmux desse painel; portanto, por exemplo, se alguém tivesse um shell bash em execução no painel e usasse o script para enviar "histórico limpo", esses seriam os pressionamentos de tecla que apareceria na linha de comando do bash. Uma solução alternativa seria enviar "tmux clear-history" ou pré-pendurar "tmux" em "$ @", mas não editei a resposta por causa de meus outros problemas com a resposta;
- Eu não conseguia descobrir como enviar um caractere de nova linha sem literalmente quebrar a linha;
- Mesmo quando eu fiz isso, enviar "tmux clear-history" não teve efeito.