Unterschied zwischen tmux- und Shell-Split-Optionen auf iTerm2?

8

Ich habe derzeit für meine Entwicklungsumgebung auf iTerm2 + VIM umgestellt. Ich bemerkte, dass die letzte Version von iTerm2 unterstützt tmuxund es Leute gab tmux, die das Fenster in mehrere Sitzungen aufteilten . Mir ist auch aufgefallen, dass iTerm2 sofort Optionen bietet, um das Fenster in mehrere Sitzungen aufzuteilen. Sie können beliebig viele Sitzungen vertikal und horizontal aufteilen, indem Sie beispielsweise CMD + D verwenden. Mir scheint also, dass Sie mit diesen Optionen die gleiche Funktionalität erreichen können. Ich könnte völlig falsch liegen.

Meine Fragen sind: Gibt es einen Unterschied / Vorteil durch die Verwendung tmuxder Aufteilungsoptionen auf iTerm2?

Wonitta
quelle

Antworten:

9

Wenn Sie iterm2 schließen, werden auch die an diese Instanz von iterm2 angehängten Shells zerstört / geschlossen. Prozesshierarchie dieser Situation:

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

Wenn Sie den iterm2 schließen, der tmux enthält , werden tmux und die Shells in dieser tmux- Instanz weiter ausgeführt. Sie können später erneut eine Verbindung zu dieser tmux- Instanz herstellen (im Wesentlichen arbeiten die Benutzer auf Remote-Servern, falls die Verbindung unterbrochen wird) und die Situation wiederherstellen, wie sie vor dem Schließen von iterm2 war. Prozesshierarchie dieser Situation:

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

direkt aus tmux zitieren :

tmux ist ein Terminal-Multiplexer: Er ermöglicht die Erstellung, den Zugriff und die Steuerung einer Reihe von Terminals (oder Fenstern), auf denen jeweils ein separates Programm ausgeführt wird, von einem einzigen Bildschirm aus. tmux kann von einem Bildschirm getrennt werden und im Hintergrund weiter ausgeführt und später wieder angebracht werden.

Ein älteres Projekt, das im Grunde die gleiche Funktionalität bietet, ist der Bildschirm

Akira
quelle
Danke akira! Das war meine allererste Frage zu SU und erhielt eine großartige Antwort, genau das, was ich brauchte!
Wonitta
Ist die Prozesshierarchie nicht eher wie: iterm2 > shell > tmux clientund tmux server > shell? Wenn Sie iTerm schließen, schließen Sie den tmux-Client, aber der Server ist noch verfügbar.
Henrik N
@HenrikN: iTerm2 könnte den tmux-Client "direkt" aufrufen. Sie würden den gleichen Effekt erzielen, wenn Sie "exec tmux attach" oder ähnliches starten. und ja, tmux besteht aus 2 teilen. Aber diese Unterscheidung verbessert nicht das Verständnis, warum sich die iterm2-Aufteilung von der tmux-Aufteilung unterscheidet, oder?
Akira
@akira Ich wollte es nur klären, weil Sie tmux unter iTerm gestellt haben, was es vielleicht schwieriger macht zu sehen, wie tmux überlebt, wenn der iTerm-Prozess beendet wird. Für mich ist der beste Weg, dies zu verstehen, zu erkennen, dass der tmux-Server unabhängig von iTerm ist (der Client jedoch nicht). Aber sicherlich ist die Tatsache, dass tmux und nicht iterm die geteilten Schalen besitzt, ein entscheidender Punkt.
Henrik N
2

Die akzeptierte Antwort ist großartig und meine Lieblingssache bei tmux, wird aber oft übersehen, dass an jede tmux-Sitzung mehrere Clients angehängt werden können. Ein oder mehrere Benutzer können also von verschiedenen Computern aus eine Verbindung zu einer tmux-Sitzung herstellen und teilen dieselben Informationen im Fenster.

davidpm4
quelle
1

Es gibt jetzt auch ein Tool namens iTermocil , das die Funktionalität zum Anordnen von Fenstern und Fenstern und zum nativen Ausführen vorkonfigurierter Befehle für iTerm bietet.

Haftungsausschluss: Ich bin der Autor dieses Tools (für die genaue Funktionalität in der Frage beschrieben).

Tom Anthony
quelle