Startfähige tmux-Konfigurationen erstellen?

24

Ich mache oft dasselbe mit tmux:

  1. cd in ein bestimmtes Verzeichnis.
  2. tmux
  3. Benennen Sie das Fenster in das um, was ich tue.
  4. Teilen Sie das Fenster vertikal zu 50%.
  5. Starten Sie einen Prozess im linken Fenster.
  6. Starten Sie einen anderen Prozess im rechten Fenster.
  7. Profitieren.

Gibt es eine Möglichkeit für mich, den Start all dessen zu automatisieren, damit ich einen einzelnen Befehl ausführen und das gesuchte Fenster erhalten kann?

Naftuli Kay
quelle
Was ist mit einem Shell-Alias?
Marco

Antworten:

22

Archwiki rettet den Tag! Die Sitzungsinitialisierung auf der tmux-Seite enthält ein Beispiel.

Das heißt, anstatt tmux as zu starten tmux, tmux new -s namewird die Sitzung beim Start benannt, anstatt eine Nummer zu vergeben.

Sitzungsinitialisierung


Sie können tmux veranlassen, eine Sitzung mit vorinstallierten Fenstern zu öffnen, indem Sie diese Details in Ihre ~ / .tmux.conf einfügen:

new  -n WindowName Command
neww -n WindowName Command
neww -n WindowName Command

Um eine Sitzung mit geteilten Fenstern (mehreren Fenstern) zu starten, geben Sie den Befehl splitw unter dem neuen Fenster ein, das Sie teilen möchten. somit:

new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

würde 2 Fenster öffnen, von denen das zweite foo / bar heißt und vertikal in zwei Hälften (50%) geteilt wird, wobei foo über bar läuft. Der Fokus liegt auf Fenster 2 (foo / bar), oberer Bereich (foo).

Hinweis: Die Nummerierung für Sitzungen, Fenster und Bereiche beginnt bei Null, es sei denn, Sie haben in Ihrer .conf einen Basisindex von 1 angegeben

Um mehrere Sitzungen zu verwalten, geben Sie separate Sitzungsdateien aus Ihrer conf-Datei ein:

# initialize sessions
bind F source-file ~/.tmux/foo
bind B source-file ~/.tmux/bar
rauben
quelle
6

Robs Antwort ist großartig und erklärt genau, wie Sitzungen in tmux selbst behandelt werden. Wenn es Ihnen nichts ausmacht, ein Drittanbieter-Tool zu verwenden, ist tmuxinator ein großartiges Projekt, mit dem Sie Sitzungen auf einfache Weise erstellen und verwalten können .

Jede Sitzung wird von einer Konfigurationsdatei gesteuert, mit der Sie alle Fenster und Fensterbereiche sowie deren Layouts und Standardbefehle für die Ausführung in ihnen definieren können. Außerdem können Sie ein Standardprojektverzeichnis, einen bestimmten Socket und Dämonen definieren, die ausgeführt werden müssen (z. B. mysql). Um das Ganze abzurunden, bietet es auch eine einfache Methode zum Anhängen: Führen mux [session-name]Sie einfach aus, und die Sitzung wird entweder gestartet oder es wird eine Verbindung hergestellt, wenn sie bereits ausgeführt wird. Ich benutze es jetzt schon eine Weile und liebe es (danke aziz !).

https://github.com/aziz/tmuxinator

JC Yamokoski
quelle