tmux同步一些但不是所有窗格

jaz*_*zzy 16 tmux

在tmux中我有3列和2行布局,顶行是ssh连接到我的所有服务器,底部是所有相同的服务器运行顶部.

我正在尝试同步顶行,所以如果我输入一个命令,所有三个窗格都复制相同的命令,我尝试了同步窗格,但是当手册页说它将通过所有窗格运行命令然后对我的所有窗格造成严重破坏在botton排上的"顶部".

无论如何要同步一组窗格?

Mad*_*hoo 8

这不是你想要的,但它非常接近.我们的想法是将一个键绑定到一组命令:

  1. 提示命令运行
  2. 使用"select-pane"选择第一个顶级窗格
  3. 使用'send-keys'运行命令
  4. 对其他顶级窗格重复步骤2和3

这是命令的样子

bind R command-prompt -p "Command :" "select-pane -t 0 \; send-keys "%1" C-m \; select-pane -t 2 \; send-keys "%1" C-m \; select-pane -t 4 \; send-keys "%1" C-m "
Run Code Online (Sandbox Code Playgroud)

以下是一个完整的示例,让我们设置6个窗格,每行2个,每行3个:

$ tmux new -s 'top_n_tail' \; split-window -h \; split-window -h \; select-layout even-horizontal \; detach
$ tmux att -t 'top_n_tail' \; select-pane -t 0 \; split-window \; detach
$ tmux att -t 'top_n_tail' \; select-pane -t 2 \; split-window \; detach
$ tmux att -t 'top_n_tail' \; select-pane -t 4 \; split-window
Run Code Online (Sandbox Code Playgroud)

在tmux提示符下(Cb :)将'R'绑定到一组接受bash命令并将其发送到某些窗格的tmux命令:

:bind R command-prompt -p "Command :" "select-pane -t 0 \; send-keys "%1" C-m \; select-pane -t 2 \; send-keys "%1" C-m \; select-pane -t 4 \; send-keys "%1" C-m "
Run Code Online (Sandbox Code Playgroud)

现在当你点击Cb R时,系统会提示你输入一个命令

提示输入命令

哪个只能在前3个窗格中运行


Mar*_*ira 5

您可以使用 禁用窗格上的输入select-pane -d。要再次启用它,请执行以下操作select-pane -e

我的前缀中有一个快捷方式:

bind -T marcos d select-pane -d
bind -T marcos e select-pane -e
Run Code Online (Sandbox Code Playgroud)