Tmux: ¿Cómo puedo vincular una ventana como ventana dividida?

33

¿Cómo puedo tomar una ventana de una sesión tmux totalmente diferente y adjuntarla como una división horizontal / vertical a la ventana actual?

pielgrzym
fuente

Respuestas:

45

Parece que estás buscando unir panel. Técnicamente, para la segunda parte de su pregunta, desea unir un panel a la ventana actual, no la ventana completa de la otra sesión, ya que eso podría incluir múltiples paneles.

Aquí hay un ejemplo. Digamos que está en la sesión 0, ventana 4 y en la sesión 2 que desea el panel 1 de la ventana 3. En el indicador tmux ( ctrl+b :por defecto)

join-pane -s 2:3.1

Esto moverá el panel 1 desde la ventana 3, la sesión 2 (-s es la ventana de origen y toma el formato de sesión: window.pane) a su sesión actual (sesión 0).

A continuación se encuentran los documentos completos para unirse al panel, que puede obtener de la página de manual de tmux. La parte más confusa para mí al leer los documentos fue averiguar el formato que se esperaba para la sesión de src-pane que especifica los números de sesión, ventana y panel ( session:window.panesegún el ejemplo anterior). También puede nombrar sus sesiones y ventanas y usar esos nombres en lugar de los números de índice.

 join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
   (alias: joinp)
   Like split-window, but instead of splitting dst-pane and 
   creating a new pane, split it and move src-pane into the 
   space.  This can be used to reverse break-pane.
mmrobins
fuente
9
¿Puedo copiar un panel en lugar de moverlo?
pielgrzym
@pielgrzym Me encantaría saber la respuesta a eso también. Por favor publíquelo aquí si lo encuentra.
Bruno Bronosky 01 de
Creo que OP estaba buscando algo más como el panel de enlaces, que desafortunadamente no existe. Al parecer, el comportamiento solicitado puede ser imitado mediante toma tmux anidada, como se explica aquí: superuser.com/a/323658
Elig
16

Si está intentando unir paneles desde la misma sesión, instintivamente querrá omitir la "sesión:" del comando. Esto fallará. Parece que los conmutadores -s y -t para unir panel aceptan el argumento en forma de [sesión]: ventana [.pane] en lugar de [sesión:] ventana [.pane]

Es decir, la sesión es opcional y la: es obligatoria. Esto es tonto. Sería el equivalente de los navegadores que requieren http://google.com:/ como la versión de acceso directo de http://google.com:80/ y dan un error a http://google.com/ o_O

Desde ctrl-b! divide el panel actual en una ventana separada (que es lo opuesto a lo que queremos hacer), y ctrl-b @ (¡que está justo al lado!) está desvinculado de forma predeterminada (lo que significa que no está sobrescribiendo nada) Sugiero crear este acceso directo ...

bind-key @ command-prompt -p "create pane from:"  "join-pane -s ':%%'"
Bruno Bronosky
fuente
Bonito enlace allí.
Nishant