以上答案都不适合我(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美元。如果您打算编写一个脚本来处理一系列 tmux 命令,请务必小心,因为需要将“-t ${_pane}”应用于每个命令。
请注意,-a
参数 totmux list-panes
是覆盖所有会话中所有窗口中的所有窗格所必需的。否则,只有当前 tmux 窗口中的窗格会受到影响。如果您打开了多个 tmux 会话并且只想将命令应用于当前会话中的窗格,请替换-a
为-s
(全部在 tmux 手册页中)。
我没有直接评论上述每个答案的 mod 点,所以这就是为什么它们不适合我的原因:
我对@shailesh-garg 的回答的问题是,同步只影响窗格内发出的命令,而不影响窗格外使用的 tmux 命令Ctrl-B :
。
我对@kshenoy 的回答的三个问题是:
- 它将击键发送到窗格内,而不是该窗格的 tmux 操作,因此,例如,如果有人在窗格中运行 bash shell 并且使用脚本发送“清除历史记录”,那么这些击键将是会出现在 bash 命令行中。一种解决方法是发送“tmux clear-history”或将“tmux”预先添加到“$@”,但由于答案存在其他问题,我没有编辑答案;
- 我不知道如何在不换行的情况下发送换行符;
- 即使我这样做了,发送“tmux clear-history”也没有效果。