假设我有一个tmux
包含 3 个窗格的窗口,每个窗格都有一个不同计算机上的终端,我想配置它们的 IP 地址,如下所示:
`$ ifconfig eth0 192.168.0.<pane_number>
我通常同步窗格以同时在所有窗格上写入,因此我想按一些组合键,然后在每个窗格上插入特定的窗格编号(将在窗格 0 上插入 0,在窗格 1 上插入 1.. .)
有这样的东西吗?
答案1
可能有一个更简单的方法,但这可行。输入你的~/.tmux.conf
,例如
bind-key m run-shell 'v=#D; tmux send-keys ${v#%}'
然后键入C-b m
应插入窗格编号。#D
被替换为%0
for pane 0 等等。${v#%}
就是删除该%
部分,假设是bash shell。要绑定到某个键而不需要C-b
,例如C-o
,使用bind-key -n C-o ...
。
要在同步时每个窗格中具有不同的数字,您必须暂时关闭同步,向每个窗格发送一个字符,然后恢复同步。这是一个 bash 脚本,假设mytmux
您可以放入 PATH 并从~/.tmuxrc
.
#!/bin/bash
# tmux helper. http://unix.stackexchange.com/a/325816/119298
if [[ $(tmux show-window-option synchronize-panes) == *on ]]
then tmux set-window-option -q synchronize-panes off
restore="tmux set-window-option -q synchronize-panes on"
fi
tmux list-panes -F '#{window_index} #{pane_index}' |
while read winid pane
do tmux send-keys -t $winid.$pane $pane
done
$restore
C-b n
然后,您可以在配置中设置绑定:
bind-key n run-shell "mytmux"