Ни один из приведенных выше ответов не работал для меня (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
параметр to tmux list-panes
необходим для покрытия всех панелей во всех окнах во всех сеансах. Без этого будут затронуты только панели в вашем текущем окне tmux. Если у вас открыто более одного сеанса tmux и вы хотите применить команду только к панелям в текущем сеансе, замените -a
на -s
(Это все на странице руководства tmux).
У меня нет модов, чтобы комментировать непосредственно каждый из приведенных выше ответов, поэтому вот почему они не работают для меня:
Проблема, с которой я столкнулся при ответе @ shailesh-garg, заключалась в том, что синхронизация затрагивала только команды, выдаваемые в пределах панелей, а не команды tmux, Ctrl-B :
выполняемые с использованием которых находятся за пределами панелей.
У меня были три проблемы с ответом @kshenoy:
- он отправляет нажатия клавиш внутри панели, а не операции tmux этой панели, например, если на панели запущена оболочка bash и кто-то использует скрипт для отправки «clear-history», это будут нажатия клавиш, которые появится в командной строке bash. Обходным решением будет отправить «tmux clear-history» или предварительно подать «tmux» на «$ @», но я не редактировал ответ из-за других проблем с ответом;
- Я не мог понять, как отправить символ новой строки без буквального разрыва строки;
- Даже когда я это сделал, отправка "tmux clear-history" не имела никакого эффекта.