¿Diferencia entre las opciones de división de tmux y shell en iTerm2?

8

Actualmente cambié a iTerm2 + VIM para mi entorno de desarrollo. Noté que la última versión de iTerm2 es compatible tmuxy había personas que usaban tmuxpara dividir la ventana en varias sesiones. También noté que iTerm2 tiene opciones listas para usar para dividir la ventana en varias sesiones. Puede dividir tantas sesiones como desee vertical y horizontalmente simplemente usando CMD + D, por ejemplo. Entonces, para mí, parece que puede lograr la misma funcionalidad con esas opciones. Podría estar totalmente equivocado.

Mi pregunta es: ¿Hay alguna diferencia / beneficio al usar tmuxmás de las opciones de división en iTerm2?

wonitta
fuente

Respuestas:

9

si cierra iterm2, los depósitos conectados a esa instancia de iterm2 también se destruyen / cierran. proceso-jerarquía de esta situación:

iterm2
  +---- shell
  +---- shell
  +---- shell

si cierra el iterm2 que contiene tmux , entonces tmux y los shells dentro de esa instancia de tmux siguen ejecutándose. más tarde puede volver a conectar a esa instancia de tmux (así es esencialmente cómo funcionan las personas en servidores remotos en caso de que la conexión se caiga) y recuperar la situación tal como estaba antes de cerrar iterm2. jerarquía de proceso de esta situación:

iterm2
  +---- tmux
          +---- shell
          +---- shell
          +---- shell

para citar directamente desde tmux :

tmux es un multiplexor de terminales: permite crear, acceder y controlar una serie de terminales (o ventanas), cada una con un programa separado, desde una sola pantalla. tmux puede separarse de una pantalla y continuar ejecutándose en segundo plano, luego volver a conectarse.

un proyecto anterior que proporciona básicamente la misma funcionalidad es la pantalla

akira
fuente
Gracias akira! esa fue mi primera pregunta sobre SU y recibí una gran respuesta, ¡exactamente lo que necesitaba!
Wonitta
¿No es la jerarquía del proceso más como: iterm2 > shell > tmux clienty tmux server > shell? Entonces, cuando cierras iTerm, cierras el cliente tmux pero el servidor sigue funcionando.
Henrik N
@HenrikN: iTerm2 podría llamar al cliente tmux "directamente". obtendría el mismo efecto si inicia "exec tmux attach" o algo similar. y sí, tmux consta de 2 partes. pero esa distinción no mejora la comprensión de por qué iterm2-splitting es diferente de tmux-splitting, ¿verdad?
akira
@akira Solo quería aclararlo porque pones tmux debajo de iTerm, lo que quizás hace que sea más difícil ver cómo tmux sobrevive cuando finaliza el proceso iTerm. Para mí, la mejor manera de entender eso es darse cuenta de que el servidor tmux es independiente de iTerm (pero el cliente no lo es). Pero sin duda, el hecho de que tmux y no iterm posean los shells divididos es un punto clave.
Henrik N
2

La respuesta aceptada es excelente y es lo que más me gusta de tmux, pero a menudo se pasa por alto que se pueden conectar varios clientes a cada sesión de tmux. Entonces, uno o más usuarios pueden conectarse a una sesión tmux desde diferentes computadoras y comparten la misma información en la ventana.

davidpm4
fuente
1

Ahora también hay una herramienta llamada iTermocil que brinda la funcionalidad de diseñar ventanas y paneles, y ejecutar comandos preconfigurados de forma nativa en iTerm.

Descargo de responsabilidad: soy el autor de esta herramienta (para la funcionalidad exacta descrita en la pregunta).

Tom Anthony
fuente