Tmux wird standardmäßig geladen, wenn ein zsh-Terminal gestartet wird


23

Mein aktueller Workflow ist:

  1. CTRL+ SHIFT+ TEin neues Terminalfenster zu starten. Das startet ein neues zsh-Terminal.
  2. Geben Sie tmuxbeginnen tmux.

Wie kann ich tmux standardmäßig mit einem neuen Terminalfenster laden?

Antworten:


36

Es gibt mindestens zwei Möglichkeiten:

  1. Schreiben Sie so etwas wie

    if [ "$TMUX" = "" ]; then tmux; fi

    am anfang von ~/.zshrc. Beachten Sie den Bedingungstest für eine mögliche Schleife, wenn tmuxeine eigene erzeugt wird zsh.

  2. Ändern Sie den Befehl zum Starten des Terminals in etwa

    xterm -e tmux

Ich bevorzuge den zweiten Weg, weil ich manchmal ein Terminal ohne starten muss tmux(zum Beispiel, wenn ich mich wieder mit einer bestehenden Sitzung verbinden muss).


2
Oder haben Sie verschiedene Abkürzungen für xterm -e tmuxund einfach xterm.
Nikolai N Fetissov

Ja, eigentlich meinte ich es unter "Ich bevorzuge den zweiten Weg" =)
Ansturm

1
Die Ausführung tmuxam Ende von .zshrcwird eine Endlosschleife von zsh auslösen, wenn tmux gestartet wird. Zsh startet tmux ...
Thor

Wie würde man vorgehen, um den Terminal-Startbefehl zu ändern?
Eoinoc

@eoinoc es hängt von Ihrer Umgebung ab. Zum Beispiel verwende ich awesome wm, daher muss ich nur den String in meiner Konfigurationsdatei ändern. In kde müssen Sie Hotkeys bearbeiten. Und so weiter.
Ansturm

6

Seien Sie vorsichtig mit der echo tmux >> ~/.zshrcLösung, aber ich erinnere mich, dass das einfache Werfen eines bashin eine .cshrcDatei mir Probleme über SSH bereitete.

IIRC Das Problem trat bei nicht interaktiven Shells auf. Sie sollten dies testen.

case $- in *i*)
  if [ -z "$TMUX" ]; then exec tmux; fi;;
esac

Es fehlt ein Leerzeichen zwischen "und ].
9.

5

füge es deinem hinzu .zshrc

if [ -z "$TMUX" ]
then
    tmux attach -t TMUX || tmux new -s TMUX
fi

Wenn Sie Ihr Terminal starten, stellt tmux automatisch eine Verbindung zu einer Sitzung namens TMUX her .


1

Es gibt tatsächlich ein Standard-Plugin tmuxfür oh_my_zsh.

Füge es deiner Plugin-Liste hinzu und setze es ZSH_TMUX_AUTOSTART=truein deiner.zshrc

Weitere Informationen finden Sie hier


0

Fügen Sie "tmux" zu Ihrer .zshrc-Datei hinzu, die bei jedem Start von zsh ausgeführt wird. Der schnelle Weg:

echo tmux >> ~/.zshrc

Das Problem dabei ist, dass es in jeder neuen Instanz eine neue Sitzung startet und tmux mit Sitzungen aufbläht, die Sie nie beendet haben (auch tmux wird sich darüber beschweren). Keine gute Lösung.
Eksapsy

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.