2012-09-17 19 views
12

En tmux tengo un diseño de 3 columnas y 2 filas, la fila superior es la conexión ssh a todo mi servidor y el final es todos los mismos servidores en la parte superior.tmux sincronizar algunos pero no todos los paneles

Estoy tratando de sincronizar la fila superior, así que si ingreso un comando los tres paneles copian el mismo comando, intenté sincronizar los paneles pero como las páginas man dicen que ejecutará los comandos a través de todos los paneles que luego causan estragos con mi todo mi 'top' en la fila inferior.

hay alguna forma de sincronizar un conjunto de paneles?

+8

No es realmente la solución, pero cualquier panel se configura en un modo diferente (p. modo reloj, modo copiar, mostrando ayuda) no responderá a las pulsaciones de tecla. Si necesita sincronizar todos menos un par de paneles, esto funciona bastante bien. –

+0

Estaba pensando en cómo hacer esto ... Estaba considerando una sesión de tmux anidada –

+0

@EddSteel En realidad, es una solución mejor que la única respuesta publicada aquí. Buen consejo! – mostruash

Respuesta

8

No es exactamente lo que estás buscando, pero es bastante estrecha. La idea es vincular una clave para un conjunto de comandos para:

  1. Pedir el comando a ejecutar
  2. Uso 'select-panel' para elegir el primer panel de nivel superior
  3. Uso 'teclas enviar 'para ejecutar el comando
  4. Repita los pasos 2 y 3 para otros paneles de alto nivel

Así es como el comando parece

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 " 

siguiente es un ejemplo completo, vamos a configurar los 6 paneles, 2 filas de 3 cada uno:

$ 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 

En tmux rápida (Cb :) bind 'R' para un conjunto de comandos TMux que aceptan su comando de bash y enviarlo a algunos paneles:

: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 " 

Ahora cuando se pulse Cb R, se le pedirá para un comando

Prompt to enter command

Que se ejecutará solo en los 3 primeros paneles

Cuestiones relacionadas