Differenza tra le opzioni tmux e shell split su iTerm2?


8

Al momento sono passato a iTerm2 + VIM per il mio ambiente di sviluppo. Ho notato che l'ultima versione di iTerm2 supporta tmuxe c'erano persone che utilizzavano tmuxper dividere la finestra in diverse sessioni. Ho anche notato che iTerm2 ha opzioni predefinite per dividere la finestra in diverse sessioni. Puoi dividere tutte le sessioni che vuoi in verticale e in orizzontale, usando ad esempio CMD + D. Quindi a me sembra che tu possa realizzare la stessa funzionalità con quelle opzioni. Potrei sbagliarmi totalmente.

La mia domanda è: esiste una differenza / beneficio utilizzando tmuxle opzioni di suddivisione su iTerm2?

Risposte:


9

se chiudi iterm2, anche le shell associate a quell'istanza di iterm2 vengono distrutte / chiuse. gerarchia dei processi di questa situazione:

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

se chiudi iterm2 che contiene tmux , allora tmux e le shell all'interno dell'istanza tmux continuano a funzionare. in seguito è possibile ricollegarsi a quell'istanza di tmux (è essenzialmente il modo in cui le persone lavorano sui server remoti nel caso in cui la connessione si interrompa) e ripristinare la situazione com'era prima di chiudere iterm2. gerarchia dei processi di questa situazione:

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

per citare direttamente da tmux :

tmux è un terminale multiplexer: consente di creare, accedere e controllare un numero di terminali (o finestre), ciascuno con un programma separato, da un unico schermo. tmux può essere staccato da uno schermo e continuare a funzionare in background, quindi ricollegato.

un progetto più vecchio che fornisce sostanzialmente la stessa funzionalità è lo schermo


Grazie Akira! questa è stata la mia prima domanda su SU e ha ricevuto un'ottima risposta, proprio quello di cui avevo bisogno!
Winitta il

La gerarchia dei processi non è più simile a: iterm2 > shell > tmux cliente tmux server > shell? Quindi quando chiudi iTerm, chiudi il client tmux ma il server è ancora in circolazione.
Henrik N,

@HenrikN: iTerm2 potrebbe chiamare il client tmux "direttamente". otterresti lo stesso effetto se avvii "exec tmux attach" o qualcosa di simile. e sì, tmux è composto da 2 parti. ma questa distinzione non migliora la comprensione del perché la divisione di iterm2 è diversa dalla divisione di tmux, vero?
Akira,

@akira Volevo solo chiarirlo perché hai messo tmux sotto iTerm, il che forse rende più difficile vedere come tmux sopravvive quando termina il processo iTerm. Per me, il modo migliore per capire è capire che il server tmux è indipendente da iTerm (ma il client non lo è). Ma certamente, il fatto che tmux e non iterm possieda le shell divise è un punto chiave.
Henrik N,

2

La risposta accettata è ottima ed è la mia cosa preferita di tmux, ma spesso viene trascurato il fatto che più client possono essere associati a ciascuna sessione di tmux. Pertanto, uno o più utenti possono connettersi a una sessione tmux da computer diversi e condividono le stesse informazioni sulla finestra.


1

Ora esiste anche uno strumento chiamato iTermocil che porta la funzionalità di disporre finestre e riquadri e di eseguire nativamente comandi preconfigurati su iTerm.

Disclaimer: sono l'autore di questo strumento (per l'esatta funzionalità descritta nella domanda).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.