tutorial texto para editores commands comandos atajos shell tmux

shell - texto - ¿Cómo enviar comandos al abrir una sesión de tmux dentro de otra sesión de tmux?



tmux para ubuntu (3)

El comando send-prefix se puede usar para enviar su pulsación de tecla de prefijo al (el proceso que se ejecuta) en el panel activo. Por defecto, el prefijo es Cb y Cb está obligado a send-prefix (de modo que al pulsarlo dos veces se envía un único 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 "externa" de tmux como su clave de prefijo. El segundo es capturado por la instancia "externa" de tmux 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 de ssh ) la instancia de tmux "interna". Captura el Cb como su tecla de prefijo. Ahora su próxima pulsación de tecla se 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 tercer nivel de tmux debe escribir Cb Cb Cb Cb c .

Esta duplicación para cada nivel puede ser molesto si habitualmente se trata de varias capas de tmux . Si puede usar alguna otra clave, puede hacer un enlace no prefijado para hacer que las cosas (posiblemente) sean más fáciles de escribir:

bind-key -n C-/ send-prefix bind-key -n C-^ send-prefix /; send-prefix

Crear una nueva ventana en tmux de segundo nivel: C- / c
Crear una nueva ventana en tmux de tercer nivel: C- ^ c (o C- / C- / c )

Si tiene un número limitado de comandos tmux que desea (fácilmente) enviar a las instancias de tmux de nivel inferior, en su lugar podría usar send-keys para crear algunos enlaces específicos (posiblemente solo en su instancia de tmux de nivel superior):

bind-key C-c send-keys C-b c bind-key C send-keys C-b C-b c

Crea una nueva ventana en tmux de segundo nivel: Cb Cc
Crear una nueva ventana en tmux de tercer nivel: Cb C

Una situación típica puede ser:

$ tmux [0] $ ssh example.com $ tmux attach [0] $

Abrí una sesión de tmux, luego ssh en un servidor y lo conecté a una sesión de tmux existente. En este punto, tengo una sesión de tmux dentro de otra. ¿Cómo envío comandos a la sesión interna de tmux?

Nota: Ambas sesiones de tmux tienen los mismos enlaces de teclas.


Para acceder al interior, mantenga el control y presione B dos veces.


EDITAR:

NO recomiendo usar Cq como una clave de Cq , ya que es un comando predeterminado de la tecla de control para

congela la pantalla y permite que la pantalla continúe

here ocurre una situación, y @Paschalis proporciona una solución:

si resulta ser dos veces desafortunada (una sesión remota de tmux con Cq como prefijo): Escriba Cltr-q , luego : y escriba en tmux: send-keys Cq

Debajo está la respuesta:

Para hacerlo simple, agregue la siguiente línea en su ~/.tmux.conf

bind-key -n C-q send-prefix

Entonces puede usar directamente Cq como bind-key para su tmux remoto.