上面的答案都不对我有用(tmux v2.3),但这确实是从bash命令行执行的:
for _pane in $(tmux list-panes -a -F '#{pane_id}'); do \
tmux clear-history -t ${_pane} ; done
对于tmux命令(不是“清除历史记录”),更通用的脚本将只是用参数替换该元素。$ 1。如果要编写脚本来处理一系列tmux命令,请务必小心,因为“ -t $ {__ pane}”将需要应用于每个命令。
请注意,必须使用-a
参数to tmux list-panes
才能覆盖所有会话中所有窗口中的所有窗格。否则,仅会影响当前tmux窗口中的窗格。如果您打开了多个tmux会话,并且只想将该命令应用于当前会话内的窗格,请替换-a
为-s
(全部在tmux手册页中)。
我没有Mod点可以直接对以上每个答案进行评论,所以这就是为什么它们对我不起作用的原因:
我对@ shailesh-garg的回答所遇到的问题是,同步仅影响窗格内发出的命令,而不影响窗格外使用的tmux命令Ctrl-B :
。
我对@kshenoy的答案的三个问题是:
- 它会将击键发送到窗格内,而不是发送到该窗格的tmux操作,因此,例如,如果一个击键在该窗格中运行,并且使用脚本发送“清除历史记录”,则这些击键将是将出现在bash命令行中。解决方法是发送“ tmux清除历史记录”或在“ $ @”之前添加“ tmux”,但是由于答案存在其他问题,因此我没有编辑答案。
- 我不知道如何发送换行符而又不打断行。
- 即使我这样做,发送“ tmux清除历史记录”也没有效果。