Ninguna de las respuestas anteriores funcionó para mí (tmux v2.3), pero esto lo hizo, desde la línea de comando bash:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
Un script más generalizado, para comandos tmux que no sean 'clear-history' simplemente reemplazaría ese elemento con un parámetro, por ejemplo. $ 1. Tenga cuidado si tiene la intención de escribir un script para manejar una serie de comandos tmux, ya que "-t $ {_ pane}" deberá aplicarse a cada uno.
Tenga en cuenta que el -a
parámetro to tmux list-panes
es necesario para cubrir todos los paneles en todas las ventanas en todas las sesiones. Sin eso, solo los paneles en su ventana tmux actual se verán afectados. Si tiene más de una sesión de tmux abierta y solo desea aplicar el comando a los paneles dentro de la sesión actual, reemplácela -a
con -s
(Todo está en la página de manual de tmux).
No tengo los puntos de mod para comentar directamente sobre cada una de las respuestas anteriores, así que he aquí por qué no funcionaban para mí:
El problema que tuve con la respuesta de @ shailesh-garg fue que la sincronización afectaba solo a los comandos emitidos dentro de los paneles, no a los comandos tmux emitidos usando los Ctrl-B :
que están fuera de los paneles.
Los tres problemas que tuve con la respuesta de @kshenoy fueron:
- envía pulsaciones de teclas dentro de un panel, no a la operación tmux de ese panel, por ejemplo, si uno tuviera un shell bash ejecutándose en el panel y utilizara el script para enviar "historial claro", esas serían las pulsaciones de teclas que aparecería en la línea de comando bash. Una solución alternativa sería enviar "tmux clear-history" o pre-pend "tmux" a "$ @", pero no he editado la respuesta debido a mis otros problemas con la respuesta;
- No podía entender cómo enviar un personaje de nueva línea sin literalmente romper la línea;
- Incluso cuando hice eso, enviar "tmux clear-history" no tuvo ningún efecto.