Diferença entre as opções de divisão tmux e shell no iTerm2?

8

No momento, mudei para o iTerm2 + VIM para o meu ambiente de desenvolvimento. Percebi que a última versão do iTerm2 suporta tmuxe havia pessoas usando tmuxpara dividir a janela em várias sessões. Também notei que o iTerm2 tem opções prontas para dividir a janela em várias sessões. Você pode dividir quantas sessões quiser vertical e horizontalmente usando apenas CMD + D, por exemplo. Então, para mim, parece que você pode realizar a mesma funcionalidade com essas opções. Eu poderia estar totalmente errado.

Minhas perguntas são: Existe uma diferença / benefício usando tmuxas opções de divisão no iTerm2?

wonitta
fonte

Respostas:

9

se você fechar o iterm2, as conchas anexadas a essa instância do iterm2 também serão destruídas / fechadas. hierarquia de processos dessa situação:

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

se você fechar o iterm2 que contém o tmux , o tmux e os shells dentro dessa instância do tmux continuarão em execução. posteriormente, você pode reconectar-se à instância tmux (é basicamente como as pessoas funcionam em servidores remotos, caso a conexão caia) e recuperar a situação como estava antes de fechar o iterm2. hierarquia de processos dessa situação:

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

para citar diretamente o tmux :

O tmux é um multiplexador de terminal: permite que vários terminais (ou janelas), cada um executando um programa separado, sejam criados, acessados ​​e controlados a partir de uma única tela. O tmux pode ser desanexado de uma tela e continuar em execução em segundo plano, e depois reconectado.

um projeto mais antigo que fornece basicamente a mesma funcionalidade é a tela

akira
fonte
Obrigado Akira! essa foi minha primeira pergunta sobre SU e recebeu uma ótima resposta, exatamente o que eu precisava!
9123 wonitta
A hierarquia de processos não é mais como: iterm2 > shell > tmux cliente tmux server > shell? Portanto, quando você fecha o iTerm, fecha o cliente tmux, mas o servidor ainda está por aí.
Henrik N
@ HenrikN: O iTerm2 pode chamar o tmux-client "diretamente". você obteria o mesmo efeito se iniciar o "exec tmux attach" ou algo semelhante. e sim, o tmux consiste em 2 partes. mas essa distinção não melhora a compreensão de por que a divisão iterm2 é diferente da divisão tmux, não é?
akira
@akira Eu só queria esclarecer isso porque você colocou o tmux no iTerm, o que talvez dificulta a visualização de como o tmux sobrevive quando o processo do iTerm termina. Para mim, a melhor maneira de entender isso é perceber que o servidor tmux é independente do iTerm (mas o cliente não é). Mas certamente, o fato de o tmux e não o iterm possuirem os shells divididos é um ponto-chave.
19412 Henrik N
2

A resposta aceita é ótima e é a minha coisa favorita sobre o tmux, mas muitas vezes esquecido é que vários clientes podem ser anexados a cada sessão do tmux. Portanto, um ou mais usuários podem se conectar a uma sessão do tmux a partir de computadores diferentes e compartilham as mesmas informações na janela.

davidpm4
fonte
1

Agora também existe uma ferramenta chamada iTermocil que traz a funcionalidade de exibir janelas e painéis e executar comandos pré-configurados nativamente para o iTerm.

Isenção de responsabilidade: eu sou o autor desta ferramenta (para a funcionalidade exata descrita na pergunta).

Tom Anthony
fonte