Una situación típica puede ser:
$ tmux
[0] $ ssh example.com
$ tmux attach
[0] $
Abro una sesión de tmux, luego ingreso a un servidor y lo adjunto a una sesión de tmux existente. En este punto tengo una sesión tmux dentro de otra. ¿Cómo envío comandos a la sesión interna de tmux?
Nota: Ambas sesiones de tmux tienen las mismas asociaciones de teclas.
Respuestas:
El
send-prefix
comando se puede usar para enviar su pulsación de tecla de prefijo (el proceso que se ejecuta) al panel activo. De manera predeterminada, el prefijo es Cb y Cb está vinculadosend-prefix
(por lo que presionarlo dos veces envía un solo Cb al panel activo). Esto es justo lo que necesitamos para acceder a los enlaces de la instancia interna de tmux .El primer Cb es capturado por la instancia tmux "externa" como su clave de prefijo. El segundo es capturado por la instancia tmux "externa" y desencadena su enlace Cb (
send-prefix
). Esto envía un Cb al panel activo de la instancia externa. El proceso que se ejecuta en este panel es (en última instancia, a través de una instancia ssh ) la instancia tmux "interna" . Captura el Cb como su clave de prefijo. Ahora su siguiente pulsación de tecla pasará a través de la instancia externa de tmux y será capturada por la interna para activar un enlace.Para activar el enlace c (
new-window
) en una instancia de segundo nivel de tmux , debe escribir Cb Cb c . Para una instancia de tmux de tercer nivel , debe escribir Cb Cb Cb Cb c .Esta duplicación para cada nivel puede ser molesta si comúnmente se trata de múltiples capas de tmux . Si puede ahorrar alguna otra clave, puede hacer un enlace sin prefijo para que las cosas (posiblemente) sean más fáciles de escribir:
Crear nueva ventana en tmux de segundo nivel : C- \ c
Crear nueva ventana en tmux de tercer nivel : C- ^ c (o C- \ C- \ c )
Si tiene un número limitado de comandos tmux que desea enviar (fácilmente) a las instancias tmux de nivel inferior , en su lugar, puede usar
send-keys
para crear algunos enlaces específicos (posiblemente solo en su instancia tmux de nivel superior ):Crear nueva ventana en tmux de segundo nivel : Cb Cc
Crear nueva ventana en tmux de tercer nivel : Cb C
fuente
last-window
vinculante como se le llamaba cuando se haceC-a C-a
, como por ejemplo:#bind-key C-a last-window
. Tenga en cuenta que mi prefijo esa
, no el predeterminadob
.bind-key -n C-\ send-prefix
No funciona. Mi tmux no reconoce el \. Cuando uso una carta, funciona.tmux bind-key -n 'C-\' send-prefix
); si tiene problemas para que funcione~/.tmux.conf
(o una:
línea de comando de Prefijo ), entonces puede intentar una cita similar (es decirbind-key -n 'C-\' send-prefix
).Para acceder al interior, mantén el control y presiona B dos veces.
fuente
EDITAR:
Yo no recomiendo su uso
C-q
como una clave de enlace, ya que es un comando predeterminado de control de clave paraAquí ocurre una situación , y @Paschalis proporciona una solución:
Debajo está la respuesta:
Para hacerlo simple, agregue la línea siguiente en su
~/.tmux.conf
Luego puede usar directamente
C-q
como clave de enlace para su tmux remoto.fuente